黑马程序员_java枚举笔记

时间:2023-02-18 20:15:40
------- android培训java培训、期待与您交流! ----------

现实中有这么一类是事物,它们只能取有限固定的值,比如星期几、性别、交通灯等等。java就针对这类事物定义了一个新的特性——枚举,它是一种特殊的类。

枚举的特点:

1.私有构造方法。

2.每个元素分别用一个共有的静态成员变量表示。

3.可以有若干个公有方法和抽象方法。

枚举的语法:

1. 基本语法

public enum TrafficLamp{
RED,GREEN,YELLOW;
}

TrafficLamp tl = TrafficLamp.GREEN;
System.out.println(tl);
枚举中定义的交通灯有RED,GREEN,YELLOW三个值,意味着enum中事先定义了3个交通灯对象,而且只有这3个交通灯对象,因为构造方法是私有的。由于这3个对象可以由枚举名直接获取,所以这3个对象是静态的。

2. 带有构造函数的枚举

public enum TrafficLamp{
RED(20),GREEN(30),YELLOW(3);
private TrafficLamp(){}
private TrafficLamp(int time){
System.out.println(time);
}
}
枚举中我们可以定义构造方法,在3个对象值后面传入参数。


3. 带有抽象方法的枚举


<span style="white-space:pre"></span>public enum TrafficLamp{
RED(20) {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return GREEN;
}
},
GREEN(30) {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return YELLOW;
}
},
YELLOW(3) {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return RED;
}
};
private TrafficLamp(){}
private TrafficLamp(int time){
System.out.println(time);
}
public abstract TrafficLamp nextLamp();
}


枚举中可以定义抽象方法,这个抽象方法由其子类实现,枚举在建立3个对象时用内部类的形式继承带有抽象方法的枚举,实现抽象方法。------- Windows Phone 7手机开发.Net培训、期待与您交流! -------