java基础加强01 枚举
来源:互联网 发布:用友软件好用吗 编辑:程序博客网 时间:2024/04/30 15:49
枚举
一、用普通类模拟枚举的实现原理
1、用普通类模拟枚举
(1)、重点
a、注意的几点:枚举中常量的定义
b、使用匿名子类对象:new WeekDay(){方法}
在枚举中声明抽象方法(也要将类声明为抽象),利用定义的常量,创建匿名子类对象在匿名子类对象中覆盖抽象方法。
(3)、代码示例
abstract class WeekDay{
//私有构造函数
private WeekDay(){}
//建立WeekDay的匿名子类对象,将大量的if else语句转移为一个个独立的类
public static final WeekDay SUN = new WeekDay(){
public WeekDay nextDay(){return SAT ;}
};
public static final WeekDay SAT = new WeekDay(){
public WeekDay nextDay(){return SUN;}
};
//定义抽象方法
public abstract WeekDay nextDay();
//也可以使用普通方法
/*public WeekDay nextDay(){
return this ==SUN?SAT:SUN;
} */
//复写toString()方法
public String toString(){
return this == SUN?"SUN":"SAT" ;
}
}
class EnumTest{
public static void main(String[] args){
WeekDay weekDay = WeekDay.SUN;
so.p(weekDay.nextDay().toString());
}
}
二、枚举中的常见方法
1、value()
(1)、重点
a、value() 返回类型:枚举对象的数组
b、将枚举定义在类的内部
c、for循环列出枚举中的元素
(2)、示例代码
class EnumTest{
//列出枚举中的元素
public static void main(String[] args){
WeekDay[] weekDays = WeekDay.values();
so.p(weekDays.length);
for(WeekDay day : weekDays){
so.p(day);
}
so.p(WeekDay.SUN.ordinal());
}
//将枚举定义成内部类
public enum WeekDay{
SUN,MON,TUE,WED,THI,FRI,SAT
}
}
三、实现带有构造方法的枚举
1、带有构造方法的枚举
(1)、重点
a、元素列表必须位于所有成分之前,包括枚举的构造方法
b、枚举的构造方法必须是私有的
c、使用特定的构造方法初始化
在枚举初始化时通过在枚举元素后的括号中传入对应的参数列来实现使用特定的构造函数初始化
(2)、示例代码
class Enuedemo{
public static void main(String[] args) {
weekDay.SUN;
}
//枚举类
public enum WeekDay{
SUN(0),MON,TUE,WED,THI,FRI,SAT;
private WeekDay(){}
private WeekDay(int day){so.p(int day)}
}
}
四、实现带有抽象方法的枚举
1、实现带有抽象方法的枚举
(1)、重点
a、在枚举类内部定义抽象方法
b、每个匿名子类对象都要实现抽象方法
(2)、示例代码
class EnumDemo{
public static void main(String[] args) {
}
public enum TrafficLamp() {
//在枚举元素后加大括号并加入类体即为匿名子类对象
RED{
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN{
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW{
public TrafficLamp nextLamp(){
return RED;
}
};
//抽象方法
public abstract TrafficLamp nextLamp();
}
}
- java基础加强01 枚举
- Java基础加强---枚举
- Java基础加强枚举笔记
- java-基础加强之枚举
- JAVA基础加强之枚举
- java基础加强_03_枚举
- java 基础加强 类的枚举
- 黑马程序员-JAVA基础加强-枚举
- 黑马程序员 Java基础加强 枚举
- 黑马程序员—Java基础加强(枚举)
- 【黑马程序员】java基础加强_枚举
- Java基础加强-java5的枚举
- JAVA基础加强:枚举(Enum)
- (29)基础加强&枚举
- 基础加强一(枚举)
- java加强--枚举
- java基础加强(二)(枚举与反射)
- <黑马程序员>枚举--(java基础加强1.5新特性)
- eclipse server Runtime Environment 环境配置
- 纠结
- STL iterator的自己实现
- hdu4632 Palindrome subsequence
- 牙齿保健
- java基础加强01 枚举
- C++ 虚函数表解析
- ACE框架简介以及一个基于ACE的C/S服务程序实例
- DP问题各种模型的状态转移方程
- MFC文档序列化实现保存和加载
- python-Levenshtein几个计算字串相似度的函数解析
- eclipse 初次java开发问题总结
- C/C++语言void及void指针深层探索
- ruby 错误汇总