枚举

枚举类:
【修饰符】 enum 枚举类型名
常量对象类表
(1)枚举类型的构造器一定是私有化的
(2)枚举类型的常量对象列表必须在首行,,如果后面还有其他成员,则必须加分号
(3)所有的枚举类型有一个直接的父类java.lang.Enum类型,所以不能继承其他类
---toString返回的是常量对象的名字
(4)switch ...case


java.lang.Enum类是java语言枚举类的公共基础类
所有的枚举类型有一个直接的父类java.lang.Enum类型,不能继承其他类
(1)name():返回枚举常量的名称
(2)ordinal():返回枚举的顺序,初始值为0
(3)int compareTo():默认按照枚举的顺序排序
(4)枚举类型.values():编译器自动生成的方法

package file;

/*
 枚举:对象是有限的几个
 (1)限制使用者随意的创建对象-->构造器私有化
 (2)把有限的对象先创建好,用静态类变量存储
 (3)通过类名。对象名调取
 
 * */

public class test14 {
    public static void main(String[] args) {
        Season spring=Season.SPRING;//通过类名获取
        System.out.println(spring);//Season [name=null]
                
        Season winter=Season.WINTER;//
        System.out.println(winter);//Season [name=winter]
    }

}


class Season{
    private String name;
    
    //1.构造器私有化
    private Season() {
        
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Season [name=" + name + "]";
    }

    public Season(String name) {
        super();
        this.name = name;
    }

    //2.把有限的对象创建好,用静态类变量存储
    public static final Season SPRING=new Season();
    public static final Season SUMMER=new Season();
    public static final Season AUTUMN=new Season("autumn");
    public static final Season WINTER=new Season("winter");
    
}
package file;

/*
 枚举类:
【修饰符】 enum 枚举类型名
               常量对象类表
(1)枚举类型的构造器一定是私有化的
(2)枚举类型的常量对象列表必须在首行,,如果后面还有其他成员,则必须加分号
(3)所有的枚举类型有一个直接的父类java.lang.Enum类型,所以不能继承其他类
            ---toString返回的是常量对象的名字
(4)switch ...case


java.lang.Enum类是java语言枚举类的公共基础类
所有的枚举类型有一个直接的父类java.lang.Enum类型,不能继承其他类
(1)name():返回枚举常量的名称
(2)ordinal():返回枚举的顺序,初始值为0
(3)int compareTo():默认按照枚举的顺序排序
(4)枚举类型.values():编译器自动生成的方法

*/

public class test15 {
    public static void main(String[] args) {
        MySeason spring=MySeason.SPRING;
        System.out.println(spring);//SPRING
        System.out.println(spring.name());//WINTER
        System.out.println(spring.ordinal());//0
        
        
        MySeason winter=MySeason.WINTER;
        System.out.println(winter);//WINTER
        System.out.println(winter.name());//WINTER
        System.out.println(winter.ordinal());//3
        
        System.out.println("************");
        
        MySeason[] values=MySeason.values();
        for(MySeason value:values) {
            System.out.println(value);
        }
        
        
        System.out.println("&&&&&&&&&&");
        
        
        MySeason valueOf = MySeason.valueOf("SPRING");
        System.out.println(valueOf);//SPRING
        
        System.out.println("************");
        
        switch (spring) {
        case SPRING:
            System.out.println("春天");
            break;
        case SUMMER:
            System.out.println("夏天");
            break;
        case AUTUMN:
            System.out.println("秋天");
            break;
        case WINTER:
            System.out.println("冬天");
            break;
        }
    }

}

enum MySeason{
    
    //枚举类型的常量对象列表必须在首行
    SPRING,
    SUMMER,
    AUTUMN("autumn"),
    WINTER("winter");
    
    private String Myname;

    private MySeason(String name) {
        this.Myname = Myname;
    }

    private MySeason() {
    }
    
}

 

posted on 2020-06-05 19:23  happygril3  阅读(208)  评论(0)    收藏  举报

导航