DESKTOP-7O1P1F7_20200903-齐元朝

问题

能不能把枚举类作为内部类封装到一个类中?

public class InnerEnum {
    
    enum Family{
        FATHER("爸爸",45),
        MOTHER("爸爸",48);
        
        private String called;
        private int age;
        
        private Family(String called , int age) {
            this.called=called;
            this.age=age;
        }
        
        public static Family getInstance(char gender) {
            switch(gender){
                case  '男':
                    return FATHER;
                
                case  '女':
                    return MOTHER;
                
                default :
                    return null;
            }
            
        }
            
    }

}

代码证明是可以的,那么,如何调用这个内部类

package qi.yuanchao.inner_enum;

public class InnerEnumTest {

    public static void main(String[] args) {

        InnerEnum ie = new InnerEnum();

        InnerEnum.Family Dad = InnerEnum.Family.getInstance('男');
        
        System.out.println(Dad);

    }

}

这个问题有点无聊,代码能正常运行,就放自己一马吧

问题2

枚举类是在类体第一行,即第一个分号前声明并创建好所以常量,之后不能再创建实例

那么,枚举类应该是用所谓的 饿汉模式 来实现的

懒汉模式是在后面的静态工厂方法中创建实例,不符合枚举类的规则