静的ブロック内で宣言された変数は他の場所にアクセスできますか? メンバーの種類(つまり、静的メンバーでもありますか)Javaの静的ブロック内で宣言された変数の範囲は何ですか?
答えて
一般に、プログラマは静的ブロック内の変数を宣言する必要はありません。通常、静的変数のスコープに応じて、すべてのクラスインスタンスが使用する静的変数の初期化を保証するためです。
静的ブロック内で宣言された変数は、メソッドおよびコンストラクタ変数と同様に、そのブロックに対してローカルになります。
ブロック内で宣言された変数は、そのブロック内でのみアクセスできます。静的またはいいえ。
静的メソッド内で宣言された変数は静的です。彼らは他の静的変数またはグローバル変数にしかアクセスできません。
しかし、C/C++のローカル変数とは異なり、これらの変数は本当に正しい、ブロックを実行した後、 『スコープの外に出る』ではないのですか? –
ブロック内の変数の範囲はブロックです。実行後、これらの変数にアクセスする方法はありません。これは変数が範囲外になることを意味します。スタティックブロックは1回だけ実行されるため、再入力する方法はありません。通常、静的ブロックを使用して、クラスがロードされたとき、およびコンストラクタが実行される前に、クラスの静的フィールドを初期化します。静的フィールドには、public、package protected、protected、privateの3つのフィールドがあります。 –
これらはメソッド変数に似ています。ブロックスコープでのみアクセス可能です。
いいえ、ブロックの外側には表示されません。それらはローカル変数のように振る舞います。静的ブロックはクラスの初期化時に呼び出される無名関数と考えることができます。彼らは静的なメンバーではありません。
- 1. Javaでは、静的メソッド自体の内部で宣言された変数は静的ですか?
- 2. 関数内で宣言された静的変数のメモリ領域はどれですか?
- 3. #defineされた変数の有効範囲は何ですか?
- 4. Java - 外部からループ内で宣言された変数
- 5. ループ内で宣言された変数
- 6. Objective-Cでの静的変数宣言の違いは何ですか?
- 7. if/elseブロック内の変数の宣言
- 8. 範囲内では、すべての宣言はコンパイル後の関数の先頭(C言語)で行われますか?範囲内
- 9. Rubyでキャプチャされたブロックの範囲を変更する
- 10. 範囲内に宣言されていないリスト
- 11. Javaの範囲は何ですか?
- 12. C-静的宣言された関数のリンク
- 13. サーブレット内のinit()メソッドの外側で宣言された変数
- 14. Delphi 2009で静的変数を宣言する方法は?
- 15. Cでの静的変数宣言/初期化の理解
- 16. ローカルで宣言された変数がfinallyブロックで認識されないのはなぜですか?
- 17. Global.asaxで宣言され、webroleのonstartイベントで初期化された静的変数の値を失う
- 18. Octreeで指定された範囲内で範囲を検索
- 19. Javaの静的ネストされたクラスは何ですか?
- 20. クラス内の関数内で宣言された変数へのアクセス(PHP)
- 21. Javascriptで静的変数を宣言する方法
- 22. mの静的宣言は非静的宣言に従います
- 23. DDD:ユビキタス言語の範囲は何ですか?それはドメインか限定されたコンテキストですか?
- 24. 静的定数クラスのメンバ宣言
- 25. Java変数の宣言
- 26. Javaでの宣言的プログラミング
- 27. 宣言的データバインディングとは何ですか?
- 28. C++クラスの静的宣言
- 29. クラスの静的宣言
- 30. 関数内で宣言された関数のスコープ
"一般的に、プログラマは静的ブロック内に変数を宣言する必要はありません" >>なぜそうではありませんか?データを保持するために一時オブジェクトが必要な場合は、静的ブロックに変数があります。 算術演算を行った後に静的フィールドをインスタンス化し、コードを読み取り可能にしたい場合のシナリオを考えてみましょう。 'static float radius; スタティックフロート領域。 static { final float PI = 3.14f; エリア=(float)(PI * Math.pow(radius、2)); } ' – realPK