9 java枚举总结
来源:互联网 发布:优衣库 实体 淘宝 编辑:程序博客网 时间:2024/06/07 23:32
1 语法
创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum<E extends Enum<E>>
,而E表示枚举类型的名称。
package javazongjie;public enum EnumTest { MON,TUE,SED,THU,FRI,SAT,SUN;}
上述代码实际上调用了7次 Enum(String name, int ordinal):
new Enum<EnumTest>("MON",0);
2 遍历、switch等常用操作
public static void main(String[] args) { for(EnumTest et : EnumTest.values()) { System.out.print(et.toString() + ","); } System.out.println(); System.out.println("--------"); EnumTest test = EnumTest.FRI; switch (test) { case FRI: System.out.println("星期五"); break; default: System.out.println("!星期五"); break; }}
3 enum对象的常用方法介绍
package javazongjie;public class Test { public static void main(String[] args) { EnumTest fri = EnumTest.FRI; //比较此枚举与制定对象的顺序 int compareTo = fri.compareTo(EnumTest.MON); System.out.println("compareTo方法:" + compareTo); //》compareTo方法:4 //getDeclaringClass()返回与此枚举常量的枚举类型相对应的Class对象 System.out.println("getDeclaringClass():" + fri.getDeclaringClass().getName()); //》getDeclaringClass():javazongjie.EnumTest System.out.println("name():" + fri.name()); //》name():FRI System.out.println("toString():" + fri.toString()); //》toString():FRI System.out.println("ordinal():" + fri.ordinal()); //》ordinal():4 }}
4 给enum自定义属性和方法
package javazongjie;public enum EnumTest { MON(1), TUE(2),WOE(3),THU(4),FRI(5), SAT(6) { @Override public boolean isRest() { return true; } },SUN(0) { @Override public boolean isRest() { return true; } }; private int value; private EnumTest(int value) { this.value = value; } public int getValue() { return value; } public boolean isRest(){ return false; } public static void main(String[] args) { EnumTest fri2 = EnumTest.SUN; System.out.println(fri2.getValue()); System.out.println(fri2.isRest()); }}
package javazongjie;public enum EnumTest2 { MON(1,"Monday"), TUE(2),WOE(3),THU(4),FRI(5), SAT(6) { @Override public boolean isRest() { return true; } },SUN(0) { @Override public boolean isRest() { return true; } }; private int value; private String completeName; private EnumTest2(int value) { this.value = value; } private EnumTest2(int value, String completeName) { this.value = value; this.completeName = completeName; } public int getValue() { return value; } public boolean isRest(){ return false; } public String getCompleteName() { return completeName; } public void setCompleteName(String completeName) { this.completeName = completeName; } public static void main(String[] args) { EnumTest2 mon2 = EnumTest2.MON; System.out.println(mon2.getValue() + " : " + mon2.getCompleteName()); EnumTest2 sun2 = EnumTest2.SUN; if(sun2.getCompleteName() == null) { sun2.setCompleteName("Sunday"); } System.out.println(sun2.getCompleteName()); }}
5 EnumSet、EnumMap应用
package javazongjie;import java.util.EnumMap;import java.util.EnumSet;import java.util.Map.Entry;public class Test2 { public static void main(String[] args) { EnumSet<EnumTest2> enumSet = EnumSet.allOf(EnumTest2.class); for(EnumTest2 et : enumSet) { System.out.print(et + " "); } //>>MON TUE WOE THU FRI SAT SUN System.out.println(); EnumMap<EnumTest2,String> enumMap = new EnumMap<>(EnumTest2.class); enumMap.put(EnumTest2.MON, "星期一"); for(Entry<EnumTest2, String> e : enumMap.entrySet()) { System.out.println(e.getKey() + " " + e.getKey().getCompleteName()+" "+e.getValue()); } //>> MON Monday 星期一 }}
6 原理分析
enum经过编译器编译之后产生的是一个class文件,该class文件经过反编译生成一个类,该类继承了java.lang.Enum。
所以,实际上enum就是一个class。
7 总结
enum看成一个普通的class,可以定义一些属性和方法。
0 0
- 9 java枚举总结
- java 枚举用法总结
- java枚举使用总结
- java枚举学习总结
- Java总结(2)枚举
- Java枚举总结
- java 枚举类总结
- Java 枚举总结
- JAVA ENUM枚举总结
- Java-枚举应用总结
- java(枚举)使用详解 + 总结
- 黑马程序员-java枚举总结
- java枚举类型总结篇
- java枚举类使用总结
- java枚举类型总结篇
- java高新技术【3】(枚举总结)
- java高新技术【3】(枚举总结)
- java enum(枚举)使用详解 + 总结
- poj 2429 GCD & LCM Inverse(Miller_rabin 测试+pollard_rho大数分解)
- linux-搭建web服务器系列--安装搭建nginx(五)
- 动态规划——最大累加和
- 关闭shell后如何保持程序继续运行
- 给定 n×n 的实数矩阵,每行和每列都是递增的,求这 n^2 个数的中位数。
- 9 java枚举总结
- 用Node.js实现余票查询并用邮件通知
- 对 data/data/ packagename/ files 下文件操作
- android:id="@android:id/tabhost" 、android:id="@+id/llRoot" 、android:id="@id/llRoot" 之间的区别
- 1056. Mice and Rice (25)-PAT甲级真题(queue的用法)
- 乔布斯的一句话
- C# 替换控件的事件
- 技术练级攻略
- 给vmware虚拟机设置Ip,使用xshell远程连接Centos