Enum 枚举 视频学习
来源:互联网 发布:node v6.11.3 x64.msi 编辑:程序博客网 时间:2024/04/29 21:59
/* enum
感觉不好懂 应该是相关的知识没有掌握好.
今天又看了一遍Enum的视频,知识理解的更清晰
基础视频 好久没有复习了,看来基础的知识不用遗忘的很快.纠结了过后,回顾视频 才搞清楚!!
抽象的类,残缺的类,不能实例化
抽象方法 只能通过 子类 来实现,父类对象不能实现该抽象方法.
* 1,为什么要有枚举
* 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,
* 否则编译器就会报错.枚举可以让编译器在编译时就可以控制源程序中填写的
* 非法值,普通变量的方式在开发阶段无法实现这个目标.
* 2,用普通类如何实现枚举功能,定义一个WeekDay的类模拟枚举功能
* 私有的构造方法
* 每个元素分别用一个共有的静态成员变量表示
* 可以有若干公有方法或抽象方法,例如,要提供nextDay方法必须是抽象的.
* 采用枚举方法定义nextDay就将大量的if else语句转移成了一个个独立的类.??!
* 3,枚举的资本应用
* 总结:枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象,
* 例如可以调用WeedDay.SUN.getClass().getName和WeekDay.class.getName().
* 4,枚举只有一个成员时,就可以作为一种单例的实现方式.
*/
Java 代码包括一下两个类:class EnumTest,class WeekDay1
java代码1:
package cn.itcast.day1;
import java.util.Date;
public class EnumTest {
public static void main(String[] args) {
WeekDay1 weekDay = WeekDay1.MON;
System.out.println(weekDay.nextDay());//就是打印weekDay的toString方法.
WeekDay weekday2 = WeekDay.FRI;
System.out.println(weekday2);
System.out.println(weekday2.name());
System.out.println(weekday2.ordinal());//排行第五
System.out.println(WeekDay.valueOf("SUN"));//打印对象
System.out.println(WeekDay.values().length);
//把枚举转换成一个数组 可以对枚举进行数组的操作.遍历...
new Date(300){};//之类的构造方法 调用父类有参数的构造方法
}
public enum WeekDay{
SUN(1),MON(),TUE,WED,THU,FRI,SAT;//排在最前面 后面的值决定选择哪个构造方法
private WeekDay(){System.out.println("first");}
private WeekDay(int day){System.out.println("second");}
}
public enum TrafficLamp{
//匿名类 交通灯类TrafficLamp 有三个子类 RED ,GREEN ,YELLOW
//new 子类的实例对象 调用父类有参数的构造方法
//每个元素分别是由枚举类的子类来生成的实例对象,
//这些子类采用类似内部类的的方式进行定义.
RED(30){
public TrafficLamp nextLamp() {
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp() {
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){this.time = time;} //构造方法
}
}
java代码2
package cn.itcast.day1;
public abstract class WeekDay1 {
private WeekDay1(){}
public final static WeekDay1 SUN = new WeekDay1(){
public WeekDay1 nextDay() {
// TODO Auto-generated method stub
return MON;
}
};
public final static WeekDay1 MON = new WeekDay1(){
public WeekDay1 nextDay() {
// TODO Auto-generated method stub
return SUN;
}
};
//用他的子类创建是实例对象 定义了一个weekday的子类
public abstract WeekDay1 nextDay();
// public final static WeekDay SUN = new WeekDay(); 对象类型的
// public void nextDay(){
// if(this ==SUN)){
// return MON;
// }else{
// return SUN;
// }
// }
//不能是静态方法
// public WeekDay nextDay(){
// if(this == SUN){
// return MON;
// }else
// return SUN;
// }
public String toString(){
return this==SUN?"SUN":"MON";
}
}
- Enum 枚举 视频学习
- 枚举 Enum学习笔记
- enum枚举类型学习
- 枚举enum学习小记
- 枚举enum学习
- 枚举enum学习小记
- 枚举enum学习小记
- java Enum枚举学习
- 枚举enum学习
- enum枚举学习
- 枚举Enum学习笔记
- python3学习笔记:枚举enum
- C++学习9:枚举enum
- 关于c# 枚举 enum 的学习
- 【C/C++】枚举enum学习小记
- 【转】【C/C++】枚举enum学习小记
- java学习笔记之 --------枚举(enum)
- C# 枚举类型(enum)学习
- 初识PHP文件缓存
- 毕业了,简单记下我的感受。
- 输入一个数据,自动算出相关的第二个数据,javascript实现
- 二进制中1的数目——编程之美2.1
- 为什么必须写begin--end
- Enum 枚举 视频学习
- 传输层(重点讲述TCP和UDP)
- 求数组中第k个小的元素
- linux系统locale的设定
- 验证码识别(1)
- JAVA实用技巧:定时执行任务的三种方法
- Jbuilder2008R2破解-安装后无法运行解决办法
- StringHelper类
- 数据库驱动等