1.对象.new语法
类结构
public class Outer { public String oName; class Inner { public String iName; public void display() { //dummy } } }
声明Inner类实例
如下图,有编译错误
解决编译问题
有两种方法
1)使用{外部类实例}.new语法:
2)将Inner声明成 static 静态内部类。
【原因】
内部非静态类,是依托于外部类实例而存在的;没有外部类实例,不能直接声明内部类实例。
静态内部类,编译成功是因为,静态内部类是外部类维度的,不会依赖外部类实例。
2.获取外部对象引用
前文提到,非静态内部类,依托于外部类实例存在。可以在内部类中,通过 {OuterClassName}.this 使用外部对象的属性。
使用方式如下: