日期:2014-05-20  浏览次数:20685 次

关于java内部类在java编程思想上看到的理解不了,那位高人帮我讲讲
关于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();
 }
}

执行过后你就会看到顺序了。相信你会明白的。