1:枚举其实就是常量的集合,就是几个字符串组成的。他继承了Enum这个类 所以他不可在继承其它类,
但是它可以实现其他接口。
2:valueOf() 将普通字符串转化为枚举类型 这个字符串必须是枚举类型成员对应的字符串
values() 将枚举类型成员以一个数组的形式返回
ordinal() 返回枚举对象位置索引值
compareTo() 枚举成员位置相同返回0 否则返回负整数
enum Constants implements intValue{
SMALL {
@Override
public int getInteValue() {
return ordinal()+100;
}
},
MIDDLE {
@Override
public int getInteValue() {
return ordinal()+100;
}
},
LARGE {
@Override
public int getInteValue() {
return ordinal()+100;
}
};
private int getIntValue(){
return ordinal()+100;
}
}
Constants[] constantses = Constants.values();
for (int i = 0; i < constantses.length; i++) {
Log.d(TAG, "onClick: constantses=="+constantses[i]);
Log.d(TAG, "onClick:11== "+Constants.valueOf(constantses[i]+""));
Log.d(TAG, "onClick: 22== "+constantses[i].ordinal());
Log.d(TAG, "onClick: getIntValue=="+constantses[i].getIntValue());
}04-11 14:55:15.423 31767-31767/com.aidl.testtry D/SecondActivity: onClick: constantses==SMALL
04-11 14:55:15.423 31767-31767/com.aidl.testtry D/SecondActivity: onClick:11== SMALL
04-11 14:55:15.423 31767-31767/com.aidl.testtry D/SecondActivity: onClick: 22== 0
04-11 14:55:15.423 31767-31767/com.aidl.testtry D/SecondActivity: onClick: getIntValue==100
04-11 14:55:15.423 31767-31767/com.aidl.testtry D/SecondActivity: onClick: constantses==MIDDLE
04-11 14:55:15.423 31767-31767/com.aidl.testtry D/SecondActivity: onClick:11== MIDDLE
04-11 14:55:15.425 31767-31767/com.aidl.testtry D/SecondActivity: onClick: 22== 1
04-11 14:55:15.425 31767-31767/com.aidl.testtry D/SecondActivity: onClick: getIntValue==101
04-11 14:55:15.425 31767-31767/com.aidl.testtry D/SecondActivity: onClick: constantses==LARGE
04-11 14:55:15.425 31767-31767/com.aidl.testtry D/SecondActivity: onClick:11== LARGE
04-11 14:55:15.425 31767-31767/com.aidl.testtry D/SecondActivity: onClick: 22== 2
04-11 14:55:15.425 31767-31767/com.aidl.testtry D/SecondActivity: onClick: getIntValue==102
简单介绍结果api:
构造函数以及上面的实现接口:
枚举的优点:
类型安全
运行效率高
简单自我总结:
枚举相当于一个class 他里面的对象都是final static 类型的,
1:凡是类里面的抽象方法 对象在实例化的时候都需要实现。
2:class里面的构造函数 对象在创建的时候也需要 特殊之处不用加new
枚举原理讲得很好的一篇文章:
https://www.cnblogs.com/hyl8218/p/5088287.html