public class Test2 {
private static Inst it = new Inst("Test~!");
public Test2() {
// TODO Auto-generated constructor stub
it.getS();
System.out.println("构造函数初始化~!");
}
public static void display(){
// System.out.println(it.getS());
}
public static void main(String[] args) {
System.out.println("Start~!");
Test2 t2= new Test2();
t2.display();
System.out.println("End~!");
}
}
public class Inst {
private String s;
public Inst(String s) {
// TODO Auto-generated constructor stub
this.s = s;
System.out.println("chushihua");
}
public String getS() {
return s;
}
}
private static Inst it = new Inst("Test~!");
public Test2() {
// TODO Auto-generated constructor stub
it.getS();
System.out.println("构造函数初始化~!");
}
public static void display(){
// System.out.println(it.getS());
}
public static void main(String[] args) {
System.out.println("Start~!");
Test2 t2= new Test2();
t2.display();
System.out.println("End~!");
}
}
public class Inst {
private String s;
public Inst(String s) {
// TODO Auto-generated constructor stub
this.s = s;
System.out.println("chushihua");
}
public String getS() {
return s;
}
}
chushihua
Start~!
构造函数初始化~!
End~!
it.getS()被调用了吧,只不过你在结果里看不到而已,因为你也没让系统打印出来呀。
如果你想看结果,你可以把原来的it.getS();这行, 换成System.out.println(it.getS());
试试
System.out.println("111");
return s;
}中打印消息都输出
其次如果new,那么执行构造方法现在知道在Test2类加载后执行静态代码
private static Inst it = new Inst("Test~!");
那么会执行下面 public Inst(String s) {
// TODO Auto-generated constructor stub
this.s = s;
System.out.println("chushihua");
}那么首先输出chushihua
Test2类加载完之后执行Test2的main方法
开始输出Start~!
然后执行Test2 t2 = new Test2();会执行构造器 public Test2() {
// TODO Auto-generated constructor stub
it.getS();
System.out.println("构造函数初始化~!");
}
输出构造函数初始化~!最后执行
System.out.println("End~!");