[PR] この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。
静的変数と静的メソッド
コード class TCls{ String Name; //静的変数 static int Num; static int nArray[]; //静的初期化ブロック static { System.out.println("静的初期化ブロックの実行順序"); nArray = new int[3]; for(int i = 0; i < 3; i++) { nArray[i] += i + Num; } } //静的メソッド static int NumUp(){ System.out.println("静的メソッドの実行順序"); ++Num; return Num; } //コンストラクタ TCls(String Str) { Name = Str; ++Num; /* for(int i = 0; i < 3; i++) { nArray[i] += i + Num; } */ } // } public class Test_StaticIns { public static void main(String[] args) { System.out.println("Start"); // System.out.println("------------------------"); //静的初期化はプログラム実行時に実行される。 System.out.println("Num = " + TCls.Num); for(int i = 0; i < TCls.nArray.length; i++){ System.out.println(i + " = " + TCls.nArray[i]); } System.out.println("NumUp = " + TCls.NumUp()); System.out.println(""); // System.out.println("////// A01 /////"); TCls A01 = new TCls("A01"); System.out.println("Num = " + TCls.Num); for(int i = 0; i < TCls.nArray.length; i++){ System.out.println(i + " = " + TCls.nArray[i]); } //System.out.println("A01 NumUp = " + A01.NumUp()); //静的にアクセスするように注意される。 System.out.println(""); // System.out.println("////// A02 /////"); TCls A02 = new TCls("A02"); System.out.println("Num = " + TCls.Num); for(int i = 0; i < TCls.nArray.length; i++){ System.out.println(i + " = " + TCls.nArray[i]); } System.out.println(""); // System.out.println("------------------------"); System.out.println("End"); } }
結果 Start ------------------------ 静的初期化ブロックの実行順序 Num = 0 0 = 0 1 = 1 2 = 2 静的メソッドの実行順序 NumUp = 1 ////// A01 ///// Num = 2 0 = 0 1 = 1 2 = 2 ////// A02 ///// Num = 3 0 = 0 1 = 1 2 = 2 ------------------------ End