我被困在一個problem.There之前執行三類 1.Teacher 2.TeacherEx 3.TeacherClass靜態塊不構造
我做教師類的靜態對象public static Teacher t
當我我在TeacherClass
中製作TeacherEx
的4個對象,TeacherEx
中的靜態塊只執行一次,而它必須執行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)你可能根本不應該在這裏使用'static'。 –
我知道靜態的概念。我試着用靜態的所有可能的東西 –