前に実行されていない私は、私は先生のクラスの静的オブジェクトにpublic static Teacher t
ときに私を作っています3クラス 1.Teacher 2.TeacherEx 3.TeacherClass静的ブロックがコンストラクタ
ある1 problem.Thereで立ち往生していますTeacherEx
のオブジェクトをTeacherClass
にすると、TeacherEx
の静的ブロックは1回だけ実行されますが、4回実行される必要があります。 誰も私の問題を正確に説明できますか?クラスの
すべての3つのクラス 先生のクラス
public class Teacher {
public static String name;
public static String subject;
public static int nolec;
}
public static class TeacherEx {
public int noStd;
public String place;
public static Teacher t;
public TeacherEx(int no, String p)
{
noStd=no;
place=p;
t.name="prashantha";
t.subject="Java_classes";
t.nolec++;
System.out.println("The nos of lec after creation class are "+t.nolec);
}
static{
if(t==null)
{
t=new Teacher();
}
else
{
System.out.println("Nothing");
}
System.out.println("The nos of lec before this class creation are "+t.nolec);
}
}
public class TeacherClass {
public static void main(String[] args)
{
TeacherEx a=new TeacherEx(45,"banglore");
TeacherEx b=new TeacherEx(75,"Mumbai");
TeacherEx c=new TeacherEx(49,"chennai");
TeacherEx d=new TeacherEx(47,"Newyork");
}
}
問題ありません。静的ブロックは、クラスが最初にロードされたときに実行されます。クラスは最初にロードされます。オブジェクトのインスタンス化でコードを実行する場合は、コンストラクタに配置します。 –
...別の言い方をすると...問題は1)静的な初期化の仕組みが理解できず、2)おそらくここで '静的な 'ものを使うべきではないでしょう。 –
私は静的な概念を知っています。私はすべて静的な可能性を試していました。 –