情况不同用法也会不同,要根据不同的环境用不同的方法:
对于成员内部类在外部类的内部可以直接使用inner s=new inner();
而在外部类的外部,要生成一个内部类对象,需要首先建立一个外部类对象,然后在生成一个内部类对象。
Outer.Inner in=Outer.new.Inner()。
局部内部类不仅可以访问外部类实例变量,还可以访问外部类的局部变量,前提是外部类的局部变量必须为final
在类外不能直接生成局部内部类。
要想使用局部内部类时需要生成对象,对象调用方法,在方法中才能调用其局部内部类。
静态内部类只能访问外部类的静态成员。
生成一个静态内部类不需要外部类成员,静态内部类的对象可以直接生成:
Outer.Inner in=new Outer.Inner();
静态内部类不可用private来进行定义。
匿名内部类 看名字就知道局部内部类的所有限制都对其生效,不再多说
|