上海装修公司做网站:java:程序运行中出错,不明白为什么错了.

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 16:27:46
class Outer
{
private int index=100;
class Inner
{
private int index=50;
void print()
{
int index=30;
System.out.println(index);
System.out.println(this.index);
System.out.println(Outer.this.index);
}
}
void println()
{
Inner inner=new Inner();
inner.print();
}
Inner getInner()
{
return new Inner();
}
public static void main(String[] args)
{
Outer outer=new Outer();
Inner inner=new Inner();(这里的出错提示)
inner.print();
}
}

在这段程序中Inner inner=new Inner();(这里的出错提示:Outer.java:27: non-static variable this cannot be referenced from a static context)

为什么Outer类可以创建新对象而Inner类不可以创建新对象.在静态方法中使用对象名.方法名就可以调用非静态方法了吗?

1、因为内部类是私有的,所以在main方法中不能创建Inner类的对象。
2、因为你的内部类Inner不是静态类(static),所以在main主方法中不能实例化,即不能创建对象。

所以,改进方法有两种:
1、在main主方法中把Inner inner = new Inner();改成Outer.Inner inner = new Outer.Inner();
2、把class Inner改为:static class Inner