枚举enum
来源:互联网 发布:优化后人员配制方案 编辑:程序博客网 时间:2024/06/04 18:33
Enum一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且在比较的时候可以用”==”来替换equals。
JDK1.5之前没有Enum这个类型,那时候一般用接口常量来替代(C语言中的这种功能)。
public enum Color { RED,BLUE,GREEN,WHITE,BLACK;//对象常量之间用逗号隔开,最后的分号可以省略}
/* * 三个知识点: * 1.如果在对象常量后面要添加其它代码则必须以“;”号结束 * 2.如果我们没有给枚举类型写构造方法,那么Java会自动帮我们加一个(私有的) * 3.枚举类中的构造方法只能是private的,即使我们不写,Java也会帮我们加private关键字 */public enum SexEnum { MALE,FEMALE; SexEnum(){ }}
public enum Signal { GREEN,YELLOW,RED}
public enum Signal2 { RED(1,"红色"),GREEN(2,"绿色"),YELLOW(3,"黄色"); private int no; private String name; //※从语法上讲,上面的属性不声明成final是可以,而且外部也可通过调用setter方法更改属性。 //※但是从实际项目的需求看,一般的属性都要声明成final,这样外部就无法通过setter方法更改信息了。 //如果上面的枚举常量对象是复杂类型(即用默认空参构造无法直接构造出来), //那么我们就必须自己写能够构造这种类型对象的对应构造方法 private Signal2(int no,String name){ this.no=no; this.name=name; } public int getNo() { return no; } public void setNo(int no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
public class Test { public static void main(String[] args) { sexEnumDemo(); colorEnumDemo(); signalEnumDemo() ; signalEnum2Demo(); } public static void sexEnumDemo(){ //SexEnum a = new SexEnum();//枚举类型的对象是不能new---其实它的构造方法是private SexEnum m = SexEnum.MALE; SexEnum f = SexEnum.FEMALE; SexEnum objs[] = SexEnum.values(); for(SexEnum obj:objs){ System.out.println(obj); } } public static void colorEnumDemo(){ Color c1 = Color.BLUE; //c1的取值只能是 枚举Color中预先定义的其中一个 System.out.println(c1); //c1就是一个类对象,只是它的取值被限定了。该对象可以调用Object中的函数 Object obj = c1;//c1可以看成是Object的子类对象 } public static void signalEnumDemo() { Signal res = change(Signal.RED); System.out.println(res); } public static Signal change(Signal c) { switch (c) { case RED: return Signal.GREEN; case YELLOW: return Signal.RED; case GREEN: return Signal.YELLOW; } return null; } // ////////////////////////////////////////////////// public static void signalEnum2Demo() { // Signal2 s1 = Signal2.GREEN; Signal2 s1 = Signal2.RED; // 显示给用户看时---用String型信息 String nm = s1.getName(); System.out.println("nm:" + nm); // 给程序识别时---用int型信息 int n = s1.getNo(); System.out.println("n:" + n); s1.setName("abc"); System.out.println("::::" + s1.getName()); }}
阅读全文
0 0
- 枚举 ENum
- enum枚举
- Enum:枚举
- enum 枚举
- 枚举(enum)
- Enum 枚举
- enum(枚举)
- 枚举 Enum
- Enum枚举
- 枚举 Enum
- 枚举Enum
- enum枚举
- enum 枚举
- 枚举enum
- 枚举enum
- enum 枚举
- 枚举(Enum)
- 枚举 enum
- Day16-51.Array initialization
- Spring Boot -- Swagger之自定义文档说明
- c#快捷键
- Java像素点算法--黑白效果与底片效果
- 40个Java多线程问题总
- 枚举enum
- AndroidCollapsingToolbarLayout-仿BiliBili视频页
- 设计模式之单例模式
- java后端,前端需要掌握到什么程度?
- Cannot determine embedded database driver class for database type NONE
- POJ
- Ubuntu 环境编译FFmpeg
- 堆与堆排序
- NYOJ 69 数的长度