IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Java中的枚举简单用法 -> 正文阅读

[移动开发]Java中的枚举简单用法

声明 enum

枚举使用enum关键字来声明,把所有可能的值依次罗列出来,其所有元素默认都是被public static final修饰,即可直接使用了。

public enum WeekDay {
    MON,TUS,WED,THU,FRI,SAT,SUN
}

注意:必须将所有值罗列在该类所有成员的最前面,且如果后面没有其他成员时,可以将末尾的分号;省略不写,否则不可省略。

构造函数

1.构造函数只能是私有权限

  • private写与不写都是等价的
public enum WeekDay {
    MON,TUS,WED,THU,FRI,SAT,SUN;
    private WeekDay(){}
}

等价于

public enum WeekDay {
    MON,TUS,WED,THU,FRI,SAT,SUN;
    WeekDay(){}
}
  • 直接罗列的值相当于是调用了无参构造,即上面的代码也相当于这样
public enum WeekDay {
    MON(),TUS(),WED(),THU(),FRI(),SAT(),SUN(){};
    private WeekDay(){}
}

2.可以重载,必须提供无参构造

自带方法

values()返回所有罗列出的值

private static void f2() {
    WeekDay[] values = WeekDay.values();
    for (WeekDay value : values) {
        System.out.println(value);
    }
}
MON
TUS
WED
THU
FRI
SAT
SUN

valueOf(String name)根据名称来获取

前提是确实存在,否则抛出Exception in thread "main" java.lang.IllegalArgumentException: No enum constant vip.sjxq.test.WeekDay.SU1N at java.lang.Enum.valueOf(Enum.java:238)

private static void f3() {
    WeekDay w = WeekDay.valueOf("SUN");
    System.out.println(w);
}

可以有抽象成员

1.抽象方法

如果定义了抽象方法,则每个罗列出来的值都要去实现定义的抽象方法,如我们定义一个抽象的nextDay()方法

public enum WeekDay {
    MON() {
        @Override
        WeekDay nextDay() {
            return TUE;
        }
    },TUE() {
        @Override
        WeekDay nextDay() {
            return null;
        }
    },WED() {
        @Override
        WeekDay nextDay() {
            return THU;
        }
    },THU() {
        @Override
        WeekDay nextDay() {
            return FRI;
        }
    },FRI() {
        @Override
        WeekDay nextDay() {
            return SAT;
        }
    },SAT() {
        @Override
        WeekDay nextDay() {
            return SUN;
        }
    },SUN(){
        @Override
        WeekDay nextDay() {
            return MON;
        }
    };
    private WeekDay(){}
    abstract WeekDay nextDay();
}

也可以再重写toString()方法

public enum WeekDay {
    MON() {
        @Override
        WeekDay nextDay() {
            return TUE;
        }

        @Override
        public String toString() {
            return "星期一";
        }
    }, TUE() {
        @Override
        WeekDay nextDay() {
            return null;
        }

        @Override
        public String toString() {
            return "星期二";
        }
    }, WED() {
        @Override
        WeekDay nextDay() {
            return THU;
        }

        @Override
        public String toString() {
            return "星期三";
        }
    }, THU() {
        @Override
        WeekDay nextDay() {
            return FRI;
        }

        @Override
        public String toString() {
            return "星期四";
        }
    }, FRI() {
        @Override
        WeekDay nextDay() {
            return SAT;
        }

        @Override
        public String toString() {
            return "星期五";
        }
    }, SAT() {
        @Override
        WeekDay nextDay() {
            return SUN;
        }

        @Override
        public String toString() {
            return "星期六";
        }
    }, SUN() {
        @Override
        WeekDay nextDay() {
            return MON;
        }

        @Override
        public String toString() {
            return "星期天";
        }
    };

    private WeekDay() {
    }

    abstract WeekDay nextDay();
}

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:51:06  更:2022-05-09 12:53:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:23:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码