JavaSilver勉強の者です。
初歩的な質問かもしれませんが教えてください。
以下のコードをご覧ください
Java
1public class Sample1{ 2 private int num; 3 void test() { 4 System.out.println(num); //0 5 num+=2; 6 System.out.println(num); //2 7 } 8 public static void main(String[] args) { 9 System.out.println(num); //コンパイルエラー 10 new Sample1().test(); 11 System.out.println(num); //コンパイルエラー 12 } 13}
staticなフィールドは、宣言されたら0やnullで初期化され、
staticでないフィールドは、宣言されても初期化されないという認識だったのですが、
numはstaticでないフィールドにも関わらず、test()では0で初期化されているようです。
main()ではコンパイルエラーになるのは当然かと思うのですが、
test()でnumが0に初期化される理由がわかりません。
このようになる理由を教えていただけると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 07:12
2021/05/22 07:23