黑马程序员Java培训和Android培训:枚举
来源:互联网 发布:数据分析方法 编辑:程序博客网 时间:2024/04/29 06:01
静态导入import static
可变参数
public int add(int i,int...args)
{
int sum;
for(i=0;i<args.length;i++)
{
sum+=arg[i];
}
return sum;
}
把上面的For循环改为增强For循环的话
public int add(int i,int...args)
{
int sum;
for(int arg:args)
{
sum+=arg;;
}
return sum;
}
自动装箱和拆箱
装箱: Interger number=12;
装箱的整数在 -128~127之内 那么2个interger相等
如果超出了这个范围 那么!=
享元模式flyweight
模拟枚举的原理
构造出来的枚举的成员都是对象类型的值
采用抽象方法定义nextDay就将大量的if else语句转移成了一个个独立的类
package Lessson;
public class EnumTest {
public static void main(String[] args) {
WeekDay wd=WeekDay.Sun;
System.out.println(wd.nextDay());
}
}
package Lessson;
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay Sun=new WeekDay(){
public WeekDay nextDay(){return Mon;}
};
public final static WeekDay Mon=new WeekDay(){
public WeekDay nextDay(){return Sun;}
};
public abstract WeekDay nextDay();
/* public WeekDay nextDay(){
if(this==Sun)
return Mon;
else
return Sun;
}*/
public String toString()
{
return this==Sun? "Sun":"Mon";
}
}
枚举的构造方法 必须方法枚举的静态变量之后,而且枚举的构造方法必须是私有的
如
public enum WeekDay{
mon(1),tu,wen,thu,fri,sat,sun;
private WeekDay(){
System.out.println("用的是第一种构造方法");
}
private WeekDay(int day){
System.out.println("用的是第二种构造方法");
}
}
}
实现带有抽象方法的枚举 (抽象类不需要body)
其中包含了内部类的知识:类的方法返回的类型可以是自己的类型,类里面可以定义静态常量,常量指向的结果就是自己这个类型的实例对象
枚举只有一个成员时,就可以作为一种单例的实现方式
package Lessson;
public class Enum2 {
public static void main(String[] args) {
TrafficLight tr=TrafficLight.RED;
System.out.println(tr.nextLight());
}
public enum TrafficLight
{
RED(30)
{
public TrafficLight nextLight ()
{
return GREEN;
}
}
,
GREEN(45)
{
public TrafficLight nextLight ()
{
return YELLOW;
}
}
,
YELLOW(5)
{
public TrafficLight nextLight ()
{
return RED;
}
}
;
public abstract TrafficLight nextLight ();
int time;
private TrafficLight(int time)
{
this.time=time;
}
}
}
- 黑马程序员Java培训和Android培训:枚举
- 黑马程序员Java培训和Android培训:培训前奏
- 黑马程序员Java培训和Android培训:编程基础
- 黑马程序员Java培训和Android培训:面向对象
- 黑马程序员Java培训和Android培训:内部类
- 黑马程序员Java培训和Android培训_IO(一)
- 黑马程序员Java培训和Android培训_IO(二)
- 黑马程序员Java培训和Android培训_网络编程
- 黑马程序员Java培训和Android培训_java高新技术(一)
- 黑马程序员Java培训和Android培训_java高新技术(二)
- 黑马程序员Java培训和Android培训_java高新技术(三)
- 黑马程序员Java培训和Android培训_交通灯系统
- 黑马程序员Java培训和Android培训:多线程
- 黑马程序员Java培训和Android培训:I/O
- 黑马程序员Java培训和Android培训:交通灯管理
- 黑马程序员Java培训和Android培训:图形界面编程
- 黑马程序员Java培训和Android培训:反射
- 黑马程序员Java培训和Android培训:集合(Map)
- WINCE下C#编程锦囊(1)
- <a> href=javascript://与href="#"的区别
- 黑马程序员Java培训和Android培训:多线程
- 二级域名 在 网站的使用
- C++~~~std::sort
- 黑马程序员Java培训和Android培训:枚举
- Rectangle VC
- 笨女人?
- jsp 用urlrewrite 实现URL 重写
- Ado.net 与NHibernate的关系
- Tomcat server.xml设置多服务绑定
- 浅谈C文件编译过程
- 配置apache + tomcat 并设置apache 二级域名重定向试验
- Windows下Apache配合Tomcat实现动态二级域名