方法1:在外部类类初始化内部类实例
class Start
{
public static void main(String [] args)
{
MyOuter outer=new MyOuter();
outer.doStuff();
}
}
class MyOuter
{
private int x;//外部有个私有的x实例变量
MyInner inner=new MyInner();//创建内部的实例
public void doStuff()//调用内部类的方法
{
inner.go();
}
class MyInner
{
void go()
{
x=24;//内部可以使用外部的x变量
System.out.println("x="+x);
}
}
}
注意:
class MyOuter
{
private int x;//外部有个私有的x实例变量
MyInner inner=new MyInner();//创建内部的实例
public static void main(String [] args)//main只能放在实例变量下面和方法上面才可以成功通过编译
{
MyOuter outer=new MyOuter();
outer.doStuff();
}
public void doStuff()//调用内部类的方法
{
inner.go();
}
class MyInner
{
void go()
{
x=24;//内部可以使用外部的x变量
System.out.println("x="+x);
}
}
}
方法2:在外部类意外的程序代码来初始化内部实例,这需要特殊的语法
class Foo
{
public static void main(String [] args)
{
MyOuter outerObj=new MyOuter();
MyOuter.MyInner innerObj=outerObj.new MyInner();
innerObj.go();
}
}
class MyOuter
{
private int x;//外部有个私有的x实例变量
//MyInner inner=new MyInner();//创建内部的实例
/*public void doStuff()//调用内部类的方法
{
inner.go();
}*/
class MyInner
{
void go()
{
x=24;//内部可以使用外部的x变量
System.out.println("x="+x);
}
}
}