枚举的理解

枚举其实就是一个类,枚举类的实例是一组限定的对象

传统的方式创建枚举 【了解】

对比:单例类

1、构造器私有化
2、本类内部创建对象
3、通过public static方法,对外暴露该对象

枚举类

1、构造器私有化
2、本类内部创建一组对象,添加public static修饰符,直接暴露对象

/**
* 此类用于演示使用传统的方式创建枚举
* 步骤
* 1、构造器私有化
2、本类内部创建一组对象,添加public static final修饰符,直接暴露对象
*/
public class TestEnum1 {
public static void main(String[] args) {
//引用枚举类的对象
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
}//简单示例2:提供有参构造
class Season{
private String name;//季节名称
private String description;//季节描述
//2.本类内部创建一组对象,添加public static修饰符,直接暴露对象
public static final Season SPRING = new Season("春天","春风又绿江大南");
public static final Season SUMMER = new Season("夏天","接天莲叶无穷碧");
public static final Season AUTUMN = new Season("秋天","霜叶红于二月花");
public static final Season WINTER = new Season("冬天","千树万树梨花开"); //1、构造器私有化
private Season(String name, String description) {
super();
this.name = name;
this.description = description;
}
public String getName() {
return name;
} public String getDescription() {
return description;
}
@Override
public String toString() {
return "Season [name=" + name + ", description=" + description + "]";
}
}

使用enum关键字定义枚举掌握

引入:jdk5.0出现的新特性

【特点】

1、使用enum关键字代替class关键字
2、对象(常量)的创建必须放在枚举类中的第一句

【语法】

对象名(实参列表), 对象名(实参列表);

3、如果是无参构造,则无参构造的定义和实参列表都可以省略

/**
* 此类用于演示使用enum关键字定义枚举类【掌握】
* 引入:jdk5.0出现的新特性
* 特点:
* 1、使用enum关键字代替class关键字
* 2、对象(常量)的创建必须放在枚举类中的第一句
* 语法:
* 对象名(实参列表),对象名(实参列表);
* 3、如果是无参构造,则无参构造的定义和实参列表都可以省略
*
*/
public class TestEnum2 { public static void main(String[] args) {
//引用枚举类的对象
//示例1:
System.out.println(Gender2.GIRL); //示例2:
System.out.println(Season2.SUMMER);
}
}
enum Season2{
//2.本类内部创建一组对象,添加public static修饰符,直接暴露对象
SPRING("春天","春风又绿江大南"),
SUMMER ("夏天","接天莲叶无穷碧"),
AUTUMN ("秋天","霜叶红于二月花"),
WINTER("冬天","千树万树梨花开"); private String name;
private String description; //1、构造器私有化
private Season2(String name, String description) {
this.name = name;
this.description = description;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
} //简单示例1:使用无参构造器:枚举常量
enum Gender2{
BOY,GIRL;
}

介绍枚举类的常见方法【了解】

toString:Enum类已经重写过了,返回的是当前对象的常量名。自定义的枚举类可以继续重写该方法

name:Enum类中的name方法返回的是当前对象的常量名(同toString),但自定义的枚举类不可以继续重写该方法

values:一个静态方法,用于返回指定的枚举类中的所有枚举常量

valueOf:一个静态方法,将一个有效的字符串转换成枚举对象

枚举类如何实现接口掌握

特点:

1. 和普通类实现接口一样,只是允许枚举常量也有自己对抽象方法的特有实现!

2. enum类不能再继承其他类,因为已经隐式的直接继承了Enum类

语法:

enum A implements 接口1,接口2{
常量1(参数){
//抽象方法的实现 },常量2(参数){
//抽象方法的实现
}
//类对抽象方法的实现
}

示例:

/**
* 此类用于演示枚举类实现接口
*
* 特点:
* 1.和普通类实现接口一样,只是允许枚举常量也有自己对抽象方法的特有实现!
* 2.enum类不能再继承其他类,因为已经隐式的直接继承了Enum类
* 语法:
* enum A implements 接口1,接口2{
* 常量1(参数){
* //抽象方法的实现
*
* },常量2(参数){
*
* //抽象方法的实现
* }
* //类对抽象方法的实现
* }
*
*/
public class TestEnum4 { public static void main(String[] args) {
Show s = Color4.RED;
s.display(); Color4.BLACK.display();
}
}
interface Show{
void display();
}
enum Color4 implements Show{
RED(255,0,0){
public void display(){
System.out.println("我是红色");
}
},
BLUE(0,0,255){
public void display(){
System.out.println("我是蓝色");
}
},
BLACK(0,0,0){
public void display(){
System.out.println("我是蓝色");
}
},
YELLOW(255,255,0){
public void display(){
System.out.println("我是黄色");
}
},
GREEN(0,255,0){
public void display(){
System.out.println("我是蓝色");
}
};
private int redValue;
public int getRedValue() {
return redValue;
}
public int getGreenValue() {
return greenValue;
}
public int getBlueValue() {
return blueValue;
}
private int greenValue;
private int blueValue;
private Color4(int redValue, int greenValue, int blueValue) { // 构造器
this.redValue = redValue;
this.greenValue = greenValue;
this.blueValue = blueValue;
}
}

Java枚举enum关键字的更多相关文章

  1. Java 枚举(enum) 详解7种常见的用法

    Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...

  2. java枚举enum

    http://www.cnblogs.com/wenruo/p/5349614.html java的枚举通过关键字enum实现.可以理解为一个类,不过这个类由编译器自动加了一些方法. static v ...

  3. JAVA—枚举(Enum)学习总结

    1.枚举(Enumeration) 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式.这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码 ...

  4. java枚举(enum)

    1. 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum (抽象类) 类的子类. enum AccountType { SAVING, FIXED, CURRE ...

  5. Java 枚举 enum 详解

    本文部分摘自 On Java 8 枚举类型 Java5 中添加了一个 enum 关键字,通过 enum 关键字,我们可以将一组拥有具名的值的有限集合创建为一种新的类型,这些具名的值可以作为常规的程序组 ...

  6. Java 枚举(enum) 详解4种常见的用法

    JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 大师兄我又加上自己的理解,来帮助各位理解一下. 用法一:常量 在JDK1.5 之前,我们定义常 ...

  7. Java 枚举(enum) 的常见用法和开发规范

    JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static final ...

  8. java枚举enum equal与==

    原文链接:https://www.cnblogs.com/xiohao/p/7405423.html 问题 我知道Java枚举会被编译成一个包含私有构造参数和一堆静态方法的类,当去比较两个枚举的时候, ...

  9. Java枚举enum以及应用:枚举实现单例模式

    枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚 ...

随机推荐

  1. Vue获取dom元素

     <li  @click='获取li标签'    :ref="center-li" id="center-li"      > =====我是li标 ...

  2. RPC协议解析

    RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.简言之,RPC使得程序能够像访问本地 ...

  3. 用C语音编写python的扩展模块,也就是python调c库

    用C语音编写python的扩展模块,也就是python调c库   1.用C语言扩展Python的功能: http://www.ibm.com/developerworks/cn/linux/l-pyt ...

  4. 【bzoj 4554】【Tjoi2016&Heoi2016】【NOIP2016模拟7.12】游戏

    题目 分析 当没有石头的时候,就用二分图匹配来做. 但现在加入了石头, 所以,求出每行和每列联通快的个数,如果有一块平地,包括在某个行联通块以及某个列联通块中,连边. //无聊打了网络流,匈牙利也可以 ...

  5. 尝试用了一哈wepy框架的感想

    恶心死我, 1 在项目里出现了中文乱码(utf-8在wpy文件里有中文和注释--编译后就转化成乱码, 把代码拷在另外的项目里,(该项目没有中文乱码现象,)编译出来就出现中文乱码, 然后我再在所拷的代码 ...

  6. 2019年开发App记录

    Pod 制作私有库参考 https://www.jianshu.com/p/f903ecf8e882 Pod私有库的升级 改代码部分,到Example文件夹执行pod install ,修改XXX.s ...

  7. tomcat 启动一傘而过问题

    tomcat 启动一傘而过问题 D:\apache-tomcat-7.0.75\bin startup.bat打开记事本打开 第一行:设置启动环境变量JAVA_HOME,CATALINA_HOME S ...

  8. JS中包含6种错误类型

    1.SyntaxError(语法错误) 解析代码时发生的语法错误 eg:var 1a; Uncaught SyntaxError: Unexpected number 2.ReferenceError ...

  9. C/C++头文件的编写

    在C语言的学习过程中,我们一般把所有的代码写在一个文件中.随着自身水平的提高,我们发现代码越写越长,代码行数越来越多,把一个工程的所有代码写在一个文件中让人看起开非常吃力.于是我们开始想把代码中的函数 ...

  10. 搭建wordpress-安装xshell

    安装xshell 下载地址 https://www.netsarang.com/download/down_xsh6.html?token=RmxrTGc3VEkwN2VxSnRuRC92RENkUU ...