---------------------- android培训、java培训、期待与您交流! ----------------------
终于可以有更多的时间去学习了,这样就可以尽早的去完成基础的学习了,为了学习是可以放弃一些东西的,希望会更好,加油!
枚举也是1.5之后的新特性:
感觉有好多基础只是可以回顾,而这一块又比较熟悉,因此学起来比较容易,不管怎么样都要认真的去学习回顾,学无止境!老师的讲解让我意识到不管什么都要学深入,否则不会有很大的前途的
首先用普通类来实现枚举功能:关键代码如下:
public class WeekDay{
private WeekDay(){
public final static WeekDay SUN=new WeekDay();
public final static WeekDay MON=new WeekDay();
pubic WeekDay nextDay(){
if(this==SUN)
{
return MON;
}else{
return SUN;
}
}
}
}打印枚举的时候必须要由设计枚举类的人提供toString()方法具体代码:
public String toString(){
return this==SUN?”SUN”:”MON”;
}
还有一种方法实现nextDay()方法:(每个对象都自己写方法)
public final static WeekDay SUN=new WeekDay(){
pubic WeekDay nextDay(){
return SUN;
}
};
利用内部类来实现每个对象的内容的具体实现:那么WeekDay必须是抽象的,然后创建一个WeekDay的子类对象去实现,在类前加abstract修饰
那么什么是枚举呢?
总结:私有的构造方法
每个元素分别用一个共有的静态成员变量表示public final static
可以有若干共有方法或抽象方法,
枚举:枚举就是我自己规定自己的类型,以后用类型定义的值必须是我自己提前规定的值,否则编译器不让过。在编译源程序时就会检查你的值是否合法
下面是一个枚举:public enum WeekDay{
SUN,MON,TUE,WED,THT,FRI,SAT;
}
枚举就相当于类
里面的成员就是类创建的实例对象而且实现了toString()方法
如果我们要迭代枚举:我们要得到枚举的数组长度values().length
带有构造方法的枚举:
1. 元素列表位于类的最前面,加分号
2. 构造方法必须是私有的默认调用的都是无参的构造方法
3. 如果在后面加上参数那么就是调用的有参的构造方法
带有抽象方法的枚举:
Public enum TrafficLamp{
RED{ public abstract TrafficLamp nextLamp(){
return GREEN;
}
},GREEN{
public abstract TrafficLamp nextLamp(){
return YEEOW;
}
},YELLOW{ public abstract TrafficLamp nextLamp(){
return RED;
}
};
}
枚举是抽象类,每个元素都是有子类创建的,子类都是匿名的
如果加上时间就要重载构造方法
RED(120){ public abstract TrafficLamp nextLamp(){
return GREEN;
}
总结://类的方法返回的类型可以是自己的类型,类中可以定义静态常量,常量指向的结果就是自己类型的实例对象;子类的实例对象调用父类有参的构造方法用RED引用名称去引用对象
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima