黑马程序员之枚举

来源:互联网 发布:阿坝州 农村淘宝 编辑:程序博客网 时间:2024/05/17 06:52

 ---------------------- 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

原创粉丝点击