11.2. 枚举的基本定义和使用
11.2.1. 枚举的定义
定义枚举类型, 需要使用到关键字 enum 。 枚举的名字是一个标识符, 遵循大驼峰命名法。
/**
* @Description 枚举的定义
*/
public enum Gender {
// 将这个枚举对象所有可能取到的值, 都列出来
// 枚举中的元素, 也是标识符, 遵循大驼峰命名法
Male, Female
}
public enum Month {
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
}
public enum Week {
Mon, Tue, Wed, Thu, Fri, Sat, Sun
}
11.2.2. 枚举的使用
枚举是一种自定义的数据类型, 可以声明变量。 在使用的时候, 直接使用枚举类型.枚举值这样的形式进行枚举值的获取。
/**
* @Description 枚举的使用
*/
public class Test {
public static void main(String[] args) {
// 枚举的使用
Gender gender1 = Gender.Male;
Gender gender2 = Gender.Female;
Month m1 = Month.Jan;
Month m2 = Month.Nov;
Week week1 = Week.Sat;
}
}
11.3. 枚举中的成员定义
11.3.1. 枚举的分析
枚举,其实可以认为是Object类的一个最终子类。 不能被其他的类、枚举继承。
/**
* @Description 枚举的使用
*/
public class EnumTest {
public static void main(String[] args) {
// 1. 获取一个枚举对象
Gender gender = Gender.Male;
// 1.1. 证明方式1: 枚举对象,可以调用Object类中的方法,说明这些方法是从Object类中继承到的。
String str = gender.toString();
// 1.2. 证明方式2: 可以向上转型为 Object 类型。
Object obj = gender;
}
}
enum Gender {
Male, Female
}
11.3.2. 枚举中的属性定义
/**
* @Description 枚举的属性定义
*/
public enum Gender {
Male, Female;
// 1. 在枚举中定义属性、方法、构造方法... 是需要写在枚举元素的下方!
// 如果需要在枚举中定义成员,需要在最后一个枚举元素后面添加一个分号。
public String desc;
}
11.3.3. 枚举中的构造方法定义
/**
* @Description 枚举的构造方法定义
*/
public class Test2 {
// 为了防止和当前包中的Gender枚举重复,在这里写成了静态内部枚举
private static enum Gender {
// 其实,所谓枚举中的元素,其实就是一个静态的、当前类的对象。
Male("男"), Female("女");
// 添加属性
private String desc;
// 添加构造方法,为这个属性赋值
// 在枚举中定义构造方法,一般情况下,只是在当前的枚举中使用
// 所以,枚举的构造方法,一般情况下,权限都是私有的
Gender(String desc) {
this.desc = desc;
}
}
public static void main(String[] args) {
// 1. 枚举对象的获取
Gender gender = Gender.Male;
}
}
11.3.4. 枚举中的方法定义
/**
* @Description 枚举的方法定义
*/
public enum Gender {
Male, Female;
// 1. 在枚举中定义属性、方法、构造方法... 是需要写在枚举元素的下方!
// 如果需要在枚举中定义成员,需要在最后一个枚举元素后面添加一个分号。
public String desc;
// 2. 定义方法
public void show() {
System.out.println("枚举中的方法定义");
}
public static void display() {
System.out.println("枚举中的静态方法的定义");
}
}
11.3.5. 枚举中的方法重写
/**
* @Description 方法重写
*/
private static enum Gender {
![img](https://img-blog.csdnimg.cn/img_convert/68742c6d30e38c539ff4c95e153c1776.png)
![img](https://img-blog.csdnimg.cn/img_convert/eeb7929e4d47cbf83f52aebd64ab683e.png)
![img](https://img-blog.csdnimg.cn/img_convert/2f7b6787e95ea3e97a64421e46c80bf0.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**