内部类Outer 外部类Inner
静态的内部类访问外部类成员
- 外部类成员是静态: 外部类.成员 //成员名不相同可以直接调用
- 外部类成员非静态: new 外部类().成员 //实例化外部类 // 静态内部类不能直接访问外部类的非静态成员
复制代码
非静态的内部类访问外部类成员
- 外部类成员是静态:外部类.成员 //成员名不相同可以直接调用
- 外部类成员非静态:外部类.this.成员 //对象化外部类 //成员名不相同可以直接调用
复制代码
创建内部类对象
- 内部类非静态: 内部类 内部类对象 = new 外部类对象.内部类();
- 外部类.内部类 对象 = new 外部类().new 内部类();
- 内部类是静态: 内部类 内部类对象 = new 静态内部类();
- 外部类.内部类 对象 = 外部类.new 内部类();
复制代码
- // 内部类非静态
- Outer o = new Outer();
- Inner i = new o.Inner();
- Outer.Inner i = new Outer().new Inner(); //合并到一行
- //内部类是静态
- Inner i = new Inenr(); // 完整写法: Outer.Inner i = Outer.new Inner();
复制代码
方法内部类,只能在外部类方法中使用,方法内部类不能使用访问控制符和 static 修饰符
内部类 可以与 方法内部类 相互嵌套使用,不可多层
内部类不可多层嵌套
内部方法类不可多层嵌套
|
|