调用内部类中的方法出错,帮忙看看。 本帖最后由 jennye 于 2009-06-18 22:31:07 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,getInner()是Outer的方法,不是Outer.Tuck的,所以你不能对Outer.Tuck的实例tuck调用getInner()方法。第二,再Tuck.Inner getInner()方法中,因为Inner是Tuck的内部类,所以你必须先创建Inner的实例,再对该实例调用new Inner()。正确的写法如下:class Outer { private int index = 33; class Tuck { int index = 22; class Inner { private int index = 11; void print() { int index = 44; System.out.println(this.index); System.out.println(Outer.this.index); System.out.println(Tuck.this.index); System.out.println(index); } } } Tuck getIn() { return new Tuck(); } Tuck.Inner getInner() { Tuck tuck = new Tuck(); return tuck.new Inner(); }}class Test { public static void main(String args[]) { Outer outer = new Outer(); Outer.Tuck tuck = outer.getIn(); Outer.Tuck.Inner inner = outer.getInner(); inner.print(); }}最后提醒一下,发代码的时候像我这样放在代码标记里,看贴的人看着清楚,也就更愿意回答你的问题了。 照书打的代码,帮找毛病啊 快速排序+插入排序 JSpider如何使用? 求比较两个字符串中重复最多的字符! applet鼠标事件求助 [提问加讨论]关于日期的问题 JB X 下引用别人开发好的类,简单引用 编译通不过~ 初学Java,怎么配置linux下的Java 开发环境?哪里有相关资料!谢谢 JCreator2.00的注册码是多少? 64位系统 32位JDK要怎么调用32位的dll动态链接库 java (TM) 升级不了 菜鸟请教 J2SE6.0帮助文档
private int index = 33; class Tuck {
int index = 22; class Inner {
private int index = 11; void print() {
int index = 44;
System.out.println(this.index);
System.out.println(Outer.this.index);
System.out.println(Tuck.this.index);
System.out.println(index);
}
}
} Tuck getIn() {
return new Tuck();
} Tuck.Inner getInner() {
Tuck tuck = new Tuck();
return tuck.new Inner();
}
}class Test {
public static void main(String args[]) {
Outer outer = new Outer();
Outer.Tuck tuck = outer.getIn();
Outer.Tuck.Inner inner = outer.getInner();
inner.print(); }
}
最后提醒一下,发代码的时候像我这样放在代码标记里,看贴的人看着清楚,也就更愿意回答你的问题了。