成员内部类:

1.在类的内部定义,与实例变量、实例方法同级别的类。

2.外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。

3.当外部类、内部类存在重名属性时,会优先访问内部类属性。(注:如果不写,会优先访问内部类;如果想访问外部类则需要加上 Outer.this)

4.成员内部类不能定义静态成员,如static(但是可以包含静态常量,如final)

image-20240513162411212

输出结果:image-20240513162430757

如果外部类属性名字和内部类属性名字一样时,想继续访问外部类属性时,需要加上 类名.this.

例:

image-20240513162953033

输出结果:

image-20240513163023947

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();
    }
}