美文网首页
枚举2--java25(02/18/2016)

枚举2--java25(02/18/2016)

作者: Girl_endless | 来源:发表于2016-02-18 17:27 被阅读17次

一、枚举类
1.如何自定义枚举类
2.如何使用enum关键字定义枚举类:将枚举类对象相同部分删掉,同时中间用逗号分隔。
①常用的方法:values() valueOf(String name)
②如何让枚举类实现接口:可以让不同的枚举类对象调用被重写的抽象方法,执行的效果不同。(相当于让每个对象重写抽象方法)
(实现方法:在相邻枚举对象中间用大括号包住,重写抽象方法)
必须在枚举类的第一行声明枚举类对象。

枚举类和普通类的区别:
使用 enum 定义的枚举类默认继承了 java.lang.Enum 类;
枚举类的构造器只能使用 private 访问控制符;
枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾). 列出的实例系统会自动添加 public static final 修饰;
JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定。

枚举类的主要方法:
values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常。

package com.atguigu.java1;
public class TestSeason1 {

    public static void main(String[] args){
        Season1 spring = Season1.SPRING;
        System.out.println(spring);
        spring.show();
        System.out.println(spring.getSeasonName());
        
        System.out.println();
        //1.values():
        Season1[] seasons = Season1.values();
        for(int i = 0;i < seasons.length;i++){
            System.out.println(seasons[i]);
        }
        //2.valuesOf(String name):str里传入的是字符串,输出的是对象;
        //要求传入的形参name是枚举类对象的名字,否则报IllegalArgumentException
        
        String str = "SPRING";
        Season1 sea = Season1.valueOf(str);
        System.out.println(sea);
        System.out.println();
        
        //也可以输出一下线程的生命周期
        Thread.State[] states = Thread.State.values();
        for (int i = 0; i < states.length; i++) {
            System.out.println(states[i]);
        }
    }

}

interface Info{
    void show();
}
//枚举类
enum Season1 implements Info{
    SPRING("spring","春暖花开"){
        public void show(){
            System.out.println("春天在哪里啊?");//实现枚举对象的不同show()方法
        }
    },
    SUMMER("summer","夏日炎炎"){
        public void show(){
            System.out.println("夏天在这里");
        }
    },
    AUTOMN("automn","秋高气爽"){
        public void show(){
            System.out.println("秋天是分手的季节");
        }
    },
    WINTER("winter","白雪皑皑"){
        public void show(){
            System.out.println("冬天里的一把火");
    }
    };//enum自己默认一些东西,可以把相同的部分删掉
    
    private final String seasonName;
    private final String seasonDesc;
    
    private Season1(String seasonName, String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }
    
    public void show(){
        System.out.println("这是一个季节");
    }
    public String getSeasonName() {
        return seasonName;
    }
    public String getSeasonDesc() {
        return seasonDesc;
    }
    
    @Override
    public String toString() {
        return "Season [seasonName=" + seasonName + ", seasonDesc="
                + seasonDesc + "]";
    }
    
}

相关文章

  • 枚举2--java25(02/18/2016)

    一、枚举类1.如何自定义枚举类2.如何使用enum关键字定义枚举类:将枚举类对象相同部分删掉,同时中间用逗号分隔。...

  • enum

    2020-02-18总结: public enum Language { } 1.为什么使用枚举enum?变量的取...

  • Oh!My Mac!

    title: Oh My Mac!date: 2016-02-01 18:50:23categories: PC/...

  • 2016/02/18

    ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器...

  • 2016 02 18

    有一个问题 我想了很久 还是没有答案 那好吧 他们说 那就是答案

  • 跑记(北九州篇)4~10月/2016

    2016年10月02日18:55:05 热身:27min,跑步:23min,2.6km,拉伸:18min Nike...

  • 枚举--java24(02/17/2016)

    如何自定义枚举类如何使用enum定义枚举类、枚举类的主要方法实现接口的枚举类 JDK1.5之前需要自定义枚举类JD...

  • 提高开发效率的工具和插件

    title: 提交开发效率的工具和插件date: 2016-02-22 18:42:25categories: i...

  • 2016-02-18

    A3 不敢相信这就是结局 你面无表情要我离去 把想说的话埋在心底 所有期待都却落空 A4 不愿相信你真的放弃 我站...

  • 布谷TIME年度最受投资人认可理财平台

    布谷君 2016-12-19 10:02:4612月18日下午,布谷TIME+宴暨2016年度最受投资人认可理财...

网友评论

      本文标题:枚举2--java25(02/18/2016)

      本文链接:https://www.haomeiwen.com/subject/xuwmkttx.html