关于java内部类在java编程思想上看到的理解不了,那位高人帮我讲讲
为啥Egg2.Yolk先出来啊!!!!
结果:
内部类构造方法Egg2.Yolk
外部类构造方法new Egg2()
内部类方法Egg2.Yolk.f()
public class Egg2 {
public Egg2() {
System.out.println(" 外部类构造器new Egg2()");
}
protected class Yolk {
public Yolk() {
System.out.println("内部类构造器Egg2.Yolk");
}
public void f() {
System.out.println("内部类方法Egg2.Yolk.f()");
}
}
private Yolk y = new Yolk();
public void g() {
y.f();
}
public static void main(String[] args) {
Egg2 e2 = new Egg2();
e2.g();
}
}
------解决方案--------------------------------------------------------
安下列顺序
1.静态初始化块
2.非静态块
3.成员变量初始化
4.构造方法
public class A{
public A(){
System.out.println("构造方法");
}
{
System.out.println("块");
}
static {
System.out.println("静态初始化块");
}
public int i = getI();
public int getI(){
System.out.println("I");
return 1;
}
public static void main(String[] args){
A a = new A();
}
}
执行过后你就会看到顺序了。相信你会明白的。