27 枚举

一个一个的列举出来

enum代表一个枚举类

枚举类的

 

public class EnumDomo {

    public static void main(String[] args) {
        //作为一个类还是要提供服务---外部获取到对象
        Season2 s =Season2.spring;
        //Season.spring=null; //外部修改我对象的地址值,加上final就报错
        //switch case 用枚举
        switch (s) { //枚举类型---要匹配枚举类型里所有的枚举常量
        case spring:
            System.out.println("春天");        
            break;
        case summer:
            System.out.println("夏天");        
            break;
        case autumn:
            System.out.println("秋天");        
            break;
        case winter:
            System.out.println("冬天");        
            break;
        default:
            break;
        }

    }

}
//季节
class Season{
    //外部拿不到构造方法---外部拿不到对象的创建过程
    //构造方法私有化
    private Season(){}
    //本类可以访问私有化构造方法--创建本类对象
    //加上static ---让外部不创建对象的前提下获取到这个属性 
    //加上final----防止外部修改我对象的地址值
    public final static     Season spring =new Season();
}

enum Season2{  //枚举类是抽象的
    //枚举类的属性-----枚举常量---枚举常量一定要在首行枚举类的首行
    //    public final static     Season spring =new Season();  //枚举常量的实质就是public final static 的对象
    spring {
        @Override
        void m2() {
            // TODO Auto-generated method stub

        }
    },
    summer {
        @Override
        void m2() {
            // TODO Auto-generated method stub

        }
    },autumn {
        @Override
        void m2() {
            // TODO Auto-generated method stub

        }
    },winter {
        @Override
        void m2() {
            // TODO Auto-generated method stub

        }
    }; //只要再第一句就行
    //普通属性和方法可以定义再枚举类中
    int i=1;
    public void m() {};
    //枚举类中的构造方法一定是私有的,因为我已经对外开放了static 对象,所以就不需要你构造方法公有了
    private Season2() {}
    //可以实现抽象方法,但是上面的枚举常量要重写抽象方法,通过匿名内部类
    abstract void m2();
}

 

posted @ 2019-07-26 10:44  三十六烦恼风x  阅读(101)  评论(0编辑  收藏  举报