黑马程序员_java基础加强之枚举
来源:互联网 发布:淘宝模特招聘 编辑:程序博客网 时间:2024/05/17 08:18
------- android培训、java培训、期待与您交流! ----------
需求:用普通类来实现枚举
public abstract class LampClass {
private LampClass(){};
private LampClass(int time){
this.time = time;
System.out.println(this.time);
}
public final static LampClass RED = new LampClass(5){
public LampClass nextLamp() {
return YELLOW;
}
};
public final static LampClass GREEN = new LampClass(){
public LampClass nextLamp() {
return RED;
}
};
public final static LampClass YELLOW = new LampClass(){
public LampClass nextLamp() {
// TODO Auto-generated method stub
return GREEN;
}
};
private int time;
public abstract LampClass nextLamp();
}
需求:定义枚举类:
//用enum定义一个枚举类
public enum LampEnum{
//指定构造参数调用相应的构造器,并实现其中的抽象方法,每个枚举值就是一个final static LampEnum 对象;
RED(30){
public LampEnum nextLamp(){
return YELLOW;
};
},GREEN(30){
public LampEnum nextLamp(){
return RED;
};
},YELLOW(5){
public LampEnum nextLamp(){
return GREEN;
};
};
//构造器定义必须放在枚举值的后面,并且构造器只能用private修饰
private LampEnum(){
System.out.println("the first constroctor");
};
private LampEnum(int time){
this.time = time;
}
private int time;
public abstract LampEnum nextLamp();
}
前言:视频目录
1.枚举的作用介绍
2.用普通类模拟枚举类的实现原理
3.Java5的枚举的基本应用
4.实现带有构造方法的枚举
5.实现带有抽象方法的枚举
一:概念
1.1枚举的作用介绍
枚举就是要让某个类型的变量取值只能为若干个固定值中的一个。否则,编译会报错。
1.2用普通类模拟枚举类的实现原理
首先,将构造函数私有化,让其他对象无法创建该类对象。
其次,每一个元素分别用一个公有静态成员变量表示。
最后,可以有多个公有方法或抽象方法。
1.3Java5枚举的基本应用
枚举是一个特殊的类,其中的每一个元素都是该类的一个实例对象。
1.4实现带有构造函数的枚举
构造函数必须私有化;如果有多个构造函数,则根据参数列表辨别调用哪个构造函数;枚举元素MON和MON()的效果一样,都是调用弄人的构造函数。
定义枚举注意:枚举元素必须位于枚举体中最开始的部分,枚举元素列表的后面要有分号与其他成员分隔。
枚举代码精华实现:
package com.test.exam;
public enum TrafficLamp {
Red(30){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return Yellow;
}},Green(45){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return Green;
}},Yellow(5){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return Red;
}};
//定义灯亮时间
private int time;
//带参数的构造函数
private TrafficLamp(int time){
this.time=time;
}
//抽象函数
public abstract TrafficLamp nextLamp();
}
- 黑马程序员_java基础加强之枚举
- 黑马程序员_java基础加强学习之枚举
- 黑马程序员_Java基础加强_枚举
- 黑马程序员_java基础加强之JavaBean
- 黑马程序员_Java基础加强之反射
- 黑马程序员_java基础加强之反射
- 黑马程序员_java基础加强-枚举和反射
- 黑马程序员_张孝祥_Java基础加强_枚举类
- 黑马程序员_java基础加强
- 黑马程序员_JAVA基础加强
- 黑马程序员_Java基础加强
- 黑马程序员_Java基础加强
- 黑马程序员_java基础加强
- 黑马程序员_java基础加强之(反射)
- 黑马程序员_java基础加强之(内省)
- 黑马程序员_java基础加强学习笔记之注解
- 黑马程序员_java基础加强之泛型
- 黑马程序员基础加强---枚举
- 各种linux系统开启关闭防火墙的命令
- 黑马程序员_String
- poj 1155 TELE (树形DP+优化)
- 解决error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No su
- 可惜我是水瓶座 (文/猫猫)
- 黑马程序员_java基础加强之枚举
- 黑马程序员---java学习笔记之交通灯
- (1)搭建opencv-android环境
- [SQLite]www.sqlite.org官网.NET最新版本所有内容下载
- Linux core dumps 的调试 .
- 无向图最小割算法。
- wm_keydown 和vm_char 区别以及 mfc DiapatchMessage派送消息返回之前的过程解析
- 去除掉屏幕上所有的UIAlertView
- 解析java.util集合类源码(List和AbstractList篇)