请问java中关于内部类的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:27:27
请问一下,java中创建的内部类对象为什么不能在main方法中被实例化,谢谢

因为main方法是static的,而static方法不能用this这个关键字来引用自身非static方法和属性
而内部类其实是依附外部类的,就相当于外部类的一个方法或者属性.
public class Test
{
public static void main(String args[])
{
InnerClass inc=new InnerClass();
//等价于InnerClass inc=this.new InnerClass();
//而this在static方法中是不能够这样用的
}
class InnerClass{}
}

当你把内部类定义成static 的的时候就可以被实例化了(如:static class InnerClass{})

另外说明一点,当class被定义成static的时候
InnerClass inc=new InnerClass(); 就和InnerClass inc=this.new InnerClass();不等价了,而是等价于inc=Test.new InnerClass();