黑马程序员_加强12_枚举 1.5的性特性
来源:互联网 发布:原谅我红尘颠倒 知乎 编辑:程序博客网 时间:2024/06/08 11:53
---------------------------------------------------android培训、java培训、期待与您交流!---- --------------------------------------
1 为什么要有枚举?(枚举的作用?)
枚举的作用可以在编译时期规范某个类的变量取某几个固定的值,否则,编译器就报错。达到在源程序时期就可以控制源程序中填写的非法值。
2 那么什么是枚举呢?
我们先用普通类来模拟一下枚举类:
public abstract class WeekDay1 {
private WeekDay1(){}; //私有化构造函数
//创建对象,并对外提供
public final static WeekDay1 SUN = new WeekDay1(){
public WeekDay1 nextDay(){
return MON;
}
};
public final static WeekDay1 MON = new WeekDay1(){
public WeekDay1 nextDay(){
return SUN;
}
};
public abstract WeekDay1 nextDay();
/* public WeekDay nextDay(){
if (this == SUN)
return MON;
else
return SUN;
}*/
public String toString(){
return this ==MON? "MON":"SUN";
}
}
通过以上程序,我们可以得出结论:
枚举,就是一个普通的类,它私有化了构造函数,然后在内部创建了固定的几个静态(static)的公有(public)的对象对外提供。这个时候该类只能有固定那几个类,其他都和普通类用法一样.
3 如何使用枚举类?(写一个基本的枚举类)
public static void main(String[] args) {
Week week1 = Week.MON;
System.out.println(week1);
}
public enum Week{
SUN,MON,TUS,SAT,TIR,FRI;
}
4 带构造方法的枚举(元素列表必须位于第一行,在构造函数之前)
构造方法必须定义成私有的
如果有多个构造方法,该如何选择哪个构造方法?答:通过参数辨别。
枚举元素MON和MON()的效果一样,都是调用默认的构造方法。
实例:
public class WeekDay {
public static void main(String[] args) {
Week week1 = Week.MON;
System.out.println(week1);
}
public enum Week{
SUN(),MON(1),TUS,SAT,TIR,FRI; //元素后面加()来使用构造方法第一个使用第一个构造函数,第二个使用第二个构造函数
private Week(){}; //构造函数必须被私有化
private Week(int day){
System.out.println("这一天是第"+day);
}; //构造函数必须被私有化
}
}
5 实现带有抽象方法的枚举:
//交通灯系统(练习带有抽象方法的枚举)
public enum TrafficLamp{
RED(30){ //子类必须实现该类的抽象方法(通过匿名子类实现)
public TrafficLamp nextDay(){
return GREEN;
}
},GREEN(45){
public TrafficLamp nextDay(){
return YELLOW;
}
},YELLOW(5){
public TrafficLamp nextDay(){
return RED;
}
};
private TrafficLamp(){}
//用抽象方法实现枚举的功能nextDay
public abstract TrafficLamp nextDay();
//用构造函数实现带有参数的枚举
private int time;
private TrafficLamp(int time){this.time = time;}
}
- 黑马程序员_加强12_枚举 1.5的性特性
- 黑马程序员_基础加强_枚举
- 黑马程序员_基础加强_枚举
- 黑马程序员_基础加强(2) 枚举
- 黑马程序员_基础加强(枚举)
- 黑马程序员_Java基础加强_枚举
- 【黑马程序员】java基础加强_枚举
- 黑马程序员__java 1.5新特性_基础加强学习
- 黑马程序员_<<基础加强--1.5新特性(上)>>
- 黑马程序员_<<基础加强--1.5新特性(泛型)(下)>>
- 黑马程序员_张孝祥_Java基础加强_枚举类
- 黑马程序员_基础加强_枚举Enum
- 黑马程序员_新特性1.5之枚举
- 黑马程序员_学习日记十四_基础加强之JDK1.5的新特性
- 黑马程序员_java基础加强_静态导入_反射_枚举_注解_内省_泛型_代理
- 黑马程序员_java_基础加强_静态导入_反射_枚举_注解_内省_泛型
- 黑马程序员_枚举
- 黑马程序员_枚举
- virtualBox启动虚拟机报“The VirtualBox kernel driver is not accessible to the current user”错误
- 微信“广点通”威力如何?
- 五位数的QQ网上要价585000
- 大数运算分析
- Introduction to Probability (一) Probability model and Axiom
- 黑马程序员_加强12_枚举 1.5的性特性
- wp应用开发吸金能力不亚于Iso
- QT上的socket网络通信编程
- poj 1192 树形dp
- N黑快围观:690战术核显卡现身
- UML之活动图
- POJ 1947 树形背包
- virtualbox 启动虚拟机报 cannot access kernel driver 错误
- 安装过程中又一个问题出现了。