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");
}
}
|