ios 获取一个枚举的所有值_凯哥带你从零学大数据系列之Java篇---第十一章:枚举...
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣.
系列文章第一篇是拥抱大数据:凯哥带你从零学大数据系列-学习大数据前奏(必读)(点我)!
上一篇:拥抱大数据:凯哥带你从零学大数据系列之Java篇---第十章:包装类和常用类
课程重点:
- 枚举的基本定义
- 枚举的基本使用
11.1. 枚举的简介
11.1.1. 枚举的概念
枚举也是一种自定义的数据类型, 是一个引用数据类型。 枚举经常用来被描述一些取值范围有限的数据。
例如:
- 性别: 只有两个值, 此时可以用枚举来表示
- 月份: 只有12个值, 此时可以用枚举来表示
- 星期: 只有七个值, 此时可以用枚举来表示
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 {// 其实,所谓枚举中的元素,其实就是一个静态的、当前类的对象。Male("男"), Female("女");// 添加属性private String desc;// 添加构造方法,为这个属性赋值// 在枚举中定义构造方法,一般情况下,只是在当前的枚举中使用// 所以,枚举的构造方法,一般情况下,权限都是私有的Gender(String desc) {this.desc = desc;}@Overridepublic String toString() {return this.desc;}}
11.3.6. 枚举实现接口
/*** @Description 接口实现*/
enum Gender implements MyInterface {@Overridepublic void test() {System.out.println("接口中的方法");}
}interface MyInterface {void test();
}
11.3.7. 枚举值
/*** @Description 枚举值*/
enum Gender implements MyInterface {// 其实,所谓枚举中的元素,其实就是一个静态的、当前类的对象。Male("男") {// 这里,其实就相当于是一个匿名内部类// 在这里,可以重写Gender中的方法@Overridepublic void test() {System.out.println("Male的重写实现");}},Female("女");// 添加属性private String desc;// 添加构造方法,为这个属性赋值// 在枚举中定义构造方法,一般情况下,只是在当前的枚举中使用// 所以,枚举的构造方法,一般情况下,权限都是私有的Gender(String desc) {this.desc = desc;}@Overridepublic String toString() {return this.desc;}@Overridepublic void test() {System.out.println("接口中的方法");}
}
看完啦,你需要接着看
拥抱大数据:凯哥带你从零学大数据系列之Java篇---第十二章:异常zhuanlan.zhihu.com
继续加油吧!
ios 获取一个枚举的所有值_凯哥带你从零学大数据系列之Java篇---第十一章:枚举...相关推荐
- map根据value值排序_凯哥带你从零学大数据系列之Java篇---第十九章:集合(Map+Collections)...
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- java lambda表达式_凯哥带你从零学大数据系列之Java篇---第二十二章:Lambda表达式...
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- jdbc代码_凯哥带你从零学大数据系列之数据库篇---第三章:JDBC基础
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- 大数据全样而非抽样原理_一文带你了解什么是大数据
科技是第一生产力.进入世纪的第一个20年以来,人们越来越多地将关注的领域集中在大数据.人工智能.云计算.物联网.移动互联网.GIS.AR与VR.5G.区块链.数字化与智慧化等,尤其为最近的风口&quo ...
- C#中如何获取一个字体的宽度值(像素单位)-获得文字的像素宽度
C#中如何获取一个字体的宽度值(像素单位) 应用:减去了一个空格的长, 字符间距还是有点差距 private void listBox1_DrawItem(object sender, DrawIte ...
- sparkstreaming监听hdfs目录_大数据系列之Spark Streaming接入Kafka数据
Spark Streaming官方提供Receiver-based和Direct Approach两种方法接入Kafka数据,本文简单介绍两种方式的pyspark实现. 1.Spark Streami ...
- 外部jar包_大数据系列之PySpark读写外部数据库
本文以MySQL和HBASE为例,简要介绍Spark通过PyMySQL和HadoopAPI算子对外部数据库的读写操作 1.PySpark读写MySQL MySQL环境准备参考"数据库系列之M ...
- Effective Java笔记第五章枚举和注解第三节用EnumSet代替位域
Effective Java笔记第五章枚举和注解 第三节用EnumSet代替位域 在以前如果一个枚举类型的元素主要用在集合中,一般就会使用int枚举模式.比如说: public class Demo ...
最新文章
- 上线随想之2011-03-25
- WinForms多线程编程之多线程计算器
- yolo-v2 v3实现笔记 mAP:mean average precision 平均精度均值
- html怎么设置z值,css z-index属性怎么用
- HDU - 2089 不要62 【暴力打表】【数位DP】
- Mysql中的in和find_in_set的区别?
- 即插即用+任意blur的超分辨率重建——DPSR
- Spring集成Memcached三种方式(一)
- Ubuntu16.04+cuda10.0+cudnn7.6配置tensorflow1.x环境
- 值得玩味儿的14个Python编程小技巧
- js+JQuery实现返回顶部功能
- android 三方_面试官送你一份Android热门三方库源码面试宝典及学习笔记
- PHP Mysql:时间函数
- 通过串口连接控制树莓派
- scintilla 中的代码折叠功能的使用
- 线性代数学习笔记——第四十讲——n维向量空间的概念
- 亳州市消防支队乡镇(街道)消防工作站综合管理平台案例
- 将Openfire中的MUC改造成类似QQ群一样的永久群
- 模拟鼠标移动程序实现——解决域控制器策略强制电脑锁屏问题
- 验证码(正则表达式)
热门文章
- 抓取html的内容,js获取网页选中内容(包含html代码)
- 基于matlab的卷积码实验报告,基于MATLAB的卷积码编译码设计仿真.doc
- python决策树怎么选择_机器学习|决策树分类与python实现
- python代码颜色不同_Python填充任意颜色,不同算法时间差异分析说明
- 浅谈Java解决鸡兔同笼问题的思路
- java 动态拼接sql_动态SQL拼接工具类
- linux进程调度周期,Linux进程组调度机制学习
- mysql手注_php+mysql手注拿shell教程【朋友给的】
- 二十七、 爬取Boss直聘的招聘信息
- ACM MM 2021 | 面向多模态情绪识别的双流异质图递归神经网络