关于枚举的理解
来源:互联网 发布:自己在知乎匿名 编辑:程序博客网 时间:2024/06/05 08:53
关于枚举
随着开发的实践,枚举这个词汇不断的涌现在眼前,总是知其然,不知其所以然。
甚至有可能在开发的时候想不起来用它,还是习惯于写静态全局常量,来一套public static final
也就是常用的constant类,当然这是无可厚非的呦。
1.所有地方都能查到的解释:(证明很基本,也很重要)
a.枚举类是一种特殊的类,它和普通的类一样,有自己的变量、方法和构造器。它的构造器只能
使用private访问修饰符,所以无法从外部调用构造器,构造器只能在构造枚举值时被调用
b.一个java源文件中只能有一个public类型的枚举类,而且该原文件的名字也必须和该枚举类的
名字一致。也就是在一个文件中只能有一个public修饰的枚举类。这里不包括内部类哈,指的是
公共访问的.java文件的入口。
c.枚举类和class,interface地位是等同的,枚举也能实现接口。
d.枚举类的对象是有限且固定的,常用于状态、类型
e.枚举类默认集成了java.lang.Enum 类,并实现了java.lang.Seriablizable 和 java.lang.Comparable
两个接口
f.所有的枚举值都默认是public static final的,不用重复声明,而且枚举值应该显式的在枚举类第一行列
出,否则无法产生实例,非抽象的枚举类不能再派生子类。
g.枚举值列举的时候也可以实现该枚举类实现的接口方法。
2.枚举值常用的方法:
a.String toString() 默认返回的枚举的名称,可自定义进行重写
b.int ordinal() 返回枚举对象的索引值,根据枚举值声明的顺序而定,从0开始;
c.String name() 返回枚举值
d.static values() 包含所有的枚举实例的数组,可用来遍历
e.int compareTo(E o) 用于与制定枚举对象比较顺序,只能同类型比较如果该对象位于指定对象之后则返回正整数
反之返回负整数,否则返回零,整数值为二者顺序之差。
随着开发的实践,枚举这个词汇不断的涌现在眼前,总是知其然,不知其所以然。
甚至有可能在开发的时候想不起来用它,还是习惯于写静态全局常量,来一套public static final
也就是常用的constant类,当然这是无可厚非的呦。
1.所有地方都能查到的解释:(证明很基本,也很重要)
a.枚举类是一种特殊的类,它和普通的类一样,有自己的变量、方法和构造器。它的构造器只能
使用private访问修饰符,所以无法从外部调用构造器,构造器只能在构造枚举值时被调用
b.一个java源文件中只能有一个public类型的枚举类,而且该原文件的名字也必须和该枚举类的
名字一致。也就是在一个文件中只能有一个public修饰的枚举类。这里不包括内部类哈,指的是
公共访问的.java文件的入口。
c.枚举类和class,interface地位是等同的,枚举也能实现接口。
d.枚举类的对象是有限且固定的,常用于状态、类型
e.枚举类默认集成了java.lang.Enum 类,并实现了java.lang.Seriablizable 和 java.lang.Comparable
两个接口
f.所有的枚举值都默认是public static final的,不用重复声明,而且枚举值应该显式的在枚举类第一行列
出,否则无法产生实例,非抽象的枚举类不能再派生子类。
g.枚举值列举的时候也可以实现该枚举类实现的接口方法。
2.枚举值常用的方法:
a.String toString() 默认返回的枚举的名称,可自定义进行重写
b.int ordinal() 返回枚举对象的索引值,根据枚举值声明的顺序而定,从0开始;
c.String name() 返回枚举值
d.static values() 包含所有的枚举实例的数组,可用来遍历
e.int compareTo(E o) 用于与制定枚举对象比较顺序,只能同类型比较如果该对象位于指定对象之后则返回正整数
反之返回负整数,否则返回零,整数值为二者顺序之差。
f.boolean equals() 比较两个枚举实例的引用。
3.例子:
public enum PEOPLE{ //枚举实例 ADULT(0,"成人"),CHILD(1,"儿童"),BABAY(2,"婴儿"); //枚举成员变量 private int type; private String name; //枚举构造 PEOPLE(int type, String name) { this.type = type; this.name = name; } //枚举方法 public int getType() { return type; } public String getName() { return name; } //枚举方法根据name获取type值 public int getType(String name) { for (PEOPLE people : values()){ if (people.getName().equals(name)){ return people.getType(); } } return -1; } //枚举方法根据type获取name值 public String getName(int type) { for (PEOPLE people : values()){ if (people.getType() == type){ return people.getName(); } } return null; } //枚举值 @Override public String toString() { return name; } }
阅读全文
1 0
- 关于枚举的理解
- 关于枚举的理解
- 关于枚举的一些理解
- 黑马程序员---关于枚举的理解
- 枚举类型的理解
- 枚举类型的理解
- 枚举类的理解
- 枚举的理解
- 关于java枚举使用和理解。
- 关于枚举的种种
- 关于枚举的使用
- 关于枚举的操作
- 关于java的枚举
- 《树的枚举》的理解
- 关于枚举的种种(zz)
- 关于枚举类的反思
- 关于C#的enum枚举
- 关于枚举的一个实例
- Android设计模式之—Builder模式
- Python3 将信息写入txt文件时的编码问题 ™
- Linux中的防火墙--firewall
- 硬币组合
- Ricequant米筐金工——因子分析
- 关于枚举的理解
- C语言文件操作
- wifi模块配网方式锦集
- Xcode调试小技巧
- IDEA修改选取单词颜色和搜索结果的颜色
- Package与Import
- 3维模型体素化
- js 中作用域、闭包的总结
- 小骆驼”的“正则表达式“部分学习总结: