[求助]内部类的实例化问题
我写了一个类,内嵌两个类。我想在主函数中实例化最里面的那个类。下面是我写的代码:
class First
{
private int index=100;
class Second
{
private int index=80;
class Third
{
private int index=50;
void print()
{
int index=30;
System.out.println(index);
}
}
}
}
class test
{
public static void main(String[] args)
{
First.Second.Third third = new First.Second.Third();
third.print();
}
}
在编译的时候提示如下错误:{
private int index=100;
class Second
{
private int index=80;
class Third
{
private int index=50;
void print()
{
int index=30;
System.out.println(index);
}
}
}
}
class test
{
public static void main(String[] args)
{
First.Second.Third third = new First.Second.Third();
third.print();
}
}
C:\code\test.java:23: 需要包含 First.Second.Third 的封闭实例
First.Second.Third third = new First.Second.Third();
^
1 错误
请大家帮我看一下,这个问题应该怎么解决。谢谢了。
----------------解决方案--------------------------------------------------------
First first = new First();
First.Second second = first.new First();
First.Second.Third third = second.new Thrid();
因为内部类中要保存外部类的一个引用,所以你先要生成外部类的对象。然后通过这个外部类的对象去创建内部类的对象。
----------------解决方案--------------------------------------------------------
问题解决。谢谢版主。
[此贴子已经被作者于2007-9-6 21:59:08编辑过]
----------------解决方案--------------------------------------------------------
以下是引用无缘今生在2007-9-6 21:54:57的发言:
问题解决。谢谢版主。
不好意思。笔误。
First first = new First();
First.Second second = first.new Second();
First.Second.Third third = second.new Third();
----------------解决方案--------------------------------------------------------
字母弄错了,
First first = new First();
First.Second second = first.new Second();
First.Second.Third third =second.new Third();
看的时候仔细一点!!!
----------------解决方案--------------------------------------------------------