//Sample08_028.java class Sample08_028{ static int num_01 = 999;//クラス変数 static int method_01(){ int num_01 = 20; return num_01;//ローカル変数を返します } static int method_02(){ return num_01;//クラス変数を返します } static int method_03(){ int num_01 = 30; return Sample08_028.num_01;//クラス変数を返します } public static void main(String[] args){ int number; number = num_01;// Sample08_028.num_01;の方がわかりやすい System.out.println("class_var: " + number); number = method_01(); System.out.println("method_01: " + number); number = method_02(); System.out.println("method_02: " + number); number = method_03(); System.out.println("method_03: " + number); } }
>javac Sample08_028.java >java Sample08_028 class_var: 999 method_01: 20 method_02: 999 method_03: 999
//Sample08_029.java class Sample08_029{ static int num_01 = 999;//クラス変数 static int method_04(){ /* * うっかりローカル変数の宣言を忘れると!! */ //int num_01 = 20; return num_01;//クラス変数を返します } public static void main(String[] args){ int number; number = num_01; System.out.println("class_var: " + number); number = method_04(); System.out.println("method_04: " + number); } }
>javac Sample08_029.java
>java Sample08_029
class_var: 999
method_04: 999 ←期待値は 20
//Sample08_030.java class Sample08_030{ static int init_value = 999; static int method_04(){ /* * うっかりローカル変数の宣言を忘れても */ //int num_01 = 20; return num_01; } public static void main(String[] args){ int number; number = init_value; System.out.println("class_var: " + number); number = method_04(); System.out.println("method_04: " + number); } }
>javac Sample08_030.java
Sample08_030.java:8: エラー: シンボルを見つけられません
return num_01;
^
シンボル: 変数 num_01
場所: クラス Sample08_030
エラー1個