成员内部类:
1.在类的内部定义,与实例变量、实例方法同级别的类。
2.外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
3.当外部类、内部类存在重名属性时,会优先访问内部类属性。(注:如果不写,会优先访问内部类;如果想访问外部类则需要加上 Outer.this)
4.成员内部类不能定义静态成员,如static(但是可以包含静态常量,如final)
例
:
输出结果:
如果外部类属性名字和内部类属性名字一样时,想继续访问外部类属性时,需要加上 类名.this.
例:
输出结果:
public class Outer {
//外部类
private String name="张三";
private int age=20;
//内部类
class Inner{
private String address="北京";
private String phone="110";
//方法
public void show(){
//打印外部类的属性
System.out.println(name);
System.out.println(age);
//打印内部类的属性
System.out.println(address);
System.out.println(phone);
}
}
}
public class TestOuter {
public static void main(String[] args) {
//1创建一个外部类对象
Outer outer=new Outer();
//2创建内部对象
Outer. Inner inner=outer.new Inner();
//二合一,一步到位
Outer.Inner inner1=new Outer().new Inner();
inner.show();
}
}