【发布时间】:2014-06-16 13:55:44
【问题描述】:
考虑下面的代码
class OuterClass{
class InnerClass{
int x;
int y;
void calculateX(){
x = y+z;//I want to access the y field of the outer class
}
void printX(){
print();
}
}
int y;
int z;
InnerClass instance;
OuterClass(int y,int z){
this.y = y;
this.z = z;
instance = new InnerClass();
instance.y = 10;
instance.calculateX();
instance.printX();
}
void print(){
System.out.println("X:"+instance.x+"\nY:"+y+"\nZ:"+z+"\n");
}
}
如果名称重叠,如何访问外部类的字段?
我尝试了以下方法:
x=super.y;
x=OuterClass.y;
并收到编译错误。
这种情况会在现实生活中发生吗?
【问题讨论】:
-
我猜外部类字段应该是
final。并且使用带有类名前缀的它们也需要它们是static。
标签: java inner-classes