标题: 关于外部类访问内部类成员的问题 [打印本页] 作者: zhanghuxin 时间: 2013-11-19 09:27 标题: 关于外部类访问内部类成员的问题 class Outer {
private int i = 10;
public void makeInner(){
Inner in = new Inner();
in.seeOuter();
}
class Inner{
public void seeOuter(){
System.out.print(i);
}
}
}
外部类并不能访问内部类中的成员变量和方法,那外部类中的方法makeInner()怎么能访问内部类的构造函数Inner()来创建内部类的对象呢?求解class Outer {//写成这种形式就不报错
private int i = 10;
public void makeInner(){
new Inner();
}
class Inner{
Inner(){};
}
}
class Outer {//把new去掉就报错了
private int i = 10;
public void makeInner(){
Inner();
}
class Inner{
Inner(){};
}
}
为什么呢?难道new 构造函数()是一种特殊的函数调用?作者: Misaeじ 时间: 2013-11-19 09:51
不太会啊 帮顶 {:soso_e179:} 我对内部类这方面也比较头疼,看看楼下的怎么说作者: qq379264347 时间: 2013-11-19 11:08
有new的一句是建立了一个类实例,new Inner();等价于Inner in = new Inner();等号右面的语句。创建了一个Inner类,自动调用其构造方法Inner()。
而你没有new的语句是调用本类的方法Inner(),因为没有该方法所以报错。