package J20250718.demo01_innerClass;

/**
 * @author WanJl
 * @version 1.0
 * @title Person
 * @description
 * @create 2025/7/18
 */
public class Person {
    private String name;

    public void method(){
        //外部类想要访问内部类的成员(成员变量、成员方法)需要创建对象。
        Heart1 heart1=new Heart1();
        heart1.s1="哈哈哈哈哈";  //创建对象后可以访问内部类的私有成员
        heart1.s2="酷酷酷酷酷";
    }

    //1、心脏不能是一个随便的类型，需要自定义一个心脏类
    //2、心脏类型不能独立存在，或不能让任意类都能使用
    //内部类：类里面建立一个新的类
    public class Heart{ //可以创建公共的内部类
        public void show(){
            name="张三";  //内部类可以访问外部类的任意成员变量，包括private修饰的。
            System.out.println(name);
        }
    }
    class Heart1{   //默认修饰的内部类
        private String s1;
        public String s2;
    }
    public abstract class Heart2{   //内部抽象类
        Heart1 h1;
    }
    public interface Heart3{    //内部接口

    }
    private class Heart4{   //私有内部类

    }

}
