java学习笔记--枚举类(综合网络用法)
什么是枚举类?
个人理解就是一个
定义了一个规范 你只能从固定的一些值中取值,限定了范围 比如性别,四季就可以用枚举类 而且是类型安全的 意思就是 你不能传入int之类的其他变量给枚举类
枚举类可以定义在一个类里 也可以单独定义 使用enum关键字
枚举类的定义格式:
enum 类名{ //枚举值 }
枚举要注意的细节:
1. 枚举类也是一个特殊的类。
2. 枚举值默认的修饰符是public static final。
3. 枚举值就是是枚举值所属的类的类型, 然后枚举值是指向了本类的对象的。
4. 枚举类的构造方法默认的修饰符是private的。
5. 枚举类可以定义自己的成员变量与成员函数。
6. 枚举类可以自定义构造函数,但是构造函数的修饰符必须是private。
7. 枚举类可以存在抽象 的方法,但是枚举值必须要实现抽象 的方法。
8. 枚举值必须要位于枚举类 的第一个语句。
总的来说 枚举值就是枚举类的实例 可以单独一个枚举值 也可以枚举值绑定一个变量 下面会介绍的
枚举用法一: 常量值
enum Sex{ 男, 女 }//男 女是Sex的实例 分隔符用逗号
如何遍历枚举?
for(Sex s : Sex.values()){ System.out.println(Sex.name); //name是枚举值的名字 如上那就是男和女 }
枚举用法二: switch
//季节枚举类 enum Season{ spring,summer,autumn,winter; } public eclass Demo8 { public static void main(String[] args) { Season season = Season.summer; switch(season){ case spring: System.out.println("春天..."); break; case summer: System.out.println("夏天..."); break; case autumn: System.out.println("秋天..."); break; case winter: System.out.println("冬天..."); break; } } }//switch里面直接放枚举值 不要加枚举类名字
———————————————————————————————————————————————————————————————————————————— 枚举用法三:枚举类有方法 枚举值和参数绑定 构造函数是private的 enum Gender{ // public static final Sex man = new Sex("man"); 要重写Gender才行 用来覆盖无参的构造函数 man("男"),woman("女"); String value; //成员 变量 private Gender(String value){ this.value = value; } } ———————————————————————————————————————————————————————————————————————— //**枚举用法四:覆盖枚举的方法** enum Sex{ // public static final Sex man = new Sex("man"); man("男"){//匿名类 @Override public void run() { System.out.println("男人在跑..."); } },woman("女"){ @Override public void run() { System.out.println("女人在跑..."); } }; //枚举值 String value; //成员 变量 public类型的 // public static final Sex man = new Sex(); //构造函数 private Sex(String value){ this.value = value; } //成员函数 public void getValue(){ System.out.println("value :"+ value); } public abstract void run(); } —————————————————————————————————————————————————————————————————————————————— 用法五:实现接口 public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour{ RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } //接口方法 @Override public String getInfo() { return this.name; } //接口方法 @Override public void print() { System.out.println(this.index+":"+this.name); } } —————————————————————————————————————————————————————————————————————————————————————— 用法六:使用接口组织枚举 public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }
switch适用的数据类型: byte \ char \short \ int \ String\枚举类型
注意:
switch中 case语句后面跟的枚举值,只需要单写枚举值即可,不需要再声明该 枚举值是属于哪个枚举类的。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
独家 | 阿里搜索事业部产品负责人深入解析:技术如何驱动商业腾飞?
雷锋网 AI 研习社按:美国西部时间 4 月 15 日,阿里巴巴在美国加利福尼州森尼韦尔市举办了首个「搜索和计算技术开放日」,分享全球化背景下阿里互联网技术前沿应用经验和未来发展观点。搜索事业部产品负责人思函从业务的角度,尤其是技术和商业结合的角度,对技术在整个阿里巴巴商业环境中所能起到的作用进行了阐述和分享。 王明强(思函),阿里巴巴研究员。2005 年加入阿里巴巴,最早在雅虎中国从事搜索产品工作,从 2009 年开始,一直负责淘宝和天猫核心搜索推荐的产品及运营业务。 「如果没有技术参与的话,整个阿里巴巴要引领商业变革的理想是很难完全实现的,而技术在这个过程中越来越起到核心的作用」,思函在当日的活动现场如是说。雷锋网 AI 研习社对他的演讲稿做了不改动原意的编辑。在未来业务发展过程中,关于技术的重要性,他主要围绕四个方面进行阐述: 一、技术促进繁荣生态 很多人都知道阿里巴巴是一个生态。它有一个非常重要的特点,也就是阿里巴巴,尤其以淘宝天猫为核心的整个阿里巴巴新零售的生态,在全球范围内算得上是独一无二的。为什么独一无二呢? 第一,就中国的消费领域来讲,用户众多且多元化,我们既有北上广深...
- 下一篇
Tensorflow快餐教程(6) - 矩阵分解
矩阵分解 特征向量和特征值 我们在《线性代数》课学过方阵的特征向量和特征值。 定义:设$A{\in}F^{n{\times}n}$是n阶方阵。如果存在非零向量$X{\in}F^{n{\times}1}$使$AX={\lambda}X$对某个常数${\lambda\in}F$成立,则称$\lambda$是A的特征值(eigenvalue),X是属于特征值${\lambda}$的特征向量。设$\sigma$是数域F上向量空间V上的线性变换,如果某个非零向量$u{\in}V$被$\sigma$映射到自己的常数倍$\sigma(u)={\lambda}u$,则称常数$\lambda\in{F}$是$\sigma$的特征值,向量u是属于特征值$\lambda$的特征向量。 又找$\lambda$又找A确实不是一件容易事。好在,我们可以把这事儿交给T
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Red5直播服务器,属于Java语言的直播服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境