黑马程序员_WeekDay 枚举代码练习

原创 2012年03月30日 22:24:44

---------------------- android培训java培训、期待与您交流! ----------------------

/*
·用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
-私有的构造方法
-每个元素分别用一个公有的静态成员变量表示
-可以有若干公有方法或抽象方法,例如,要提供nextDay方法必须是抽象的。
采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。
*/
/*
英文,简写,中文
Monday,Mon,星期一
Tuesday,Tue,星期二
Wednesday,Wed,星期三
Thursday,Thu,星期四
Friday,Fri,星期五
Saturday,Sat,星期六
Sunday,Sun,星期日
*/
abstract class WeekDay 
{
//1.私有的构造方法
private WeekDay(){}
//2.每个元素分别用一个公有的静态成员变量表示
public final static WeekDay MON = new WeekDay(){
public WeekDay nextDay(){
return TUE;
}
};

public final static WeekDay TUE = new WeekDay(){
public WeekDay nextDay(){
return WED;
}
};
public final static WeekDay WED = new WeekDay(){
public WeekDay nextDay(){
return THU;
}
};

public final static WeekDay THU = new WeekDay(){
public WeekDay nextDay(){
return FRI;
}
};
public final static WeekDay FRI = new WeekDay(){
public WeekDay nextDay(){
return SAT;
}
};
public final static WeekDay SAT = new WeekDay(){
public WeekDay nextDay(){
return SUN;
}
};
public final static WeekDay SUN = new WeekDay(){
public WeekDay nextDay(){
return MON;
}
};
public String toString(){
String day = "Monday";

if (this==TUE)
{
day = "Tuesday";
}
else if (this==WED)
{
day = "Wednesday";
}
else if (this==THU)
{
day = "Thursday";
}

else if(this==FRI)
{
day = "Friday";
}
else if (this==SAT)
{
day = "Saturday";
}
else if (this==SUN)
{
day = "Sunday";
}
return day;
}
/*
if(this==MON){
return "Monday";
}
*/
abstract public WeekDay nextDay();
         public static void main(String[] args)
{
showday(WeekDay.TUE);
}
public static void showday(WeekDay weekDay)
{
WeekDay temp = weekDay;
for(int i=0 ;i < 7;i++){
temp = temp.nextDay();
System.out.println(temp);
}

}
}
class Student
{
private String name;
private int age;
private static String log ="log";
Student(){}

public String getName(){
return this.name;
}
public void method1(){
System.out.println("method1");
}

public void method2(){
//在方法里面访问类成员属性
String result = this.name;
//在方法里面访问成员方法
method1();

//非静态的方法,可以访问类中的所有成员,包括静态和非静态的,在这里举例:非静态方法访问静态方法(即调用静态方法)
method3();
}
//静态方法只能访问类中的静态成员变量和静态的成员方法
public static void method3(){
System.out.println(log);
}
}

---------------------- android培训java培训、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

Java基础---枚举及部分JDK1.5新特性 (黑马程序员)

第一讲     枚举 一、概述         这里说的枚举,不是集合vector的特有枚举迭代器,而是JDK1.5的一个新特性。之所以单独拿它开刷,是这个知识点比较重要,同时相对来说比较难理...

黑马程序员-通过枚举实现单例模式

import java.lang.reflect.Constructor; /** * 测试Singleton的可靠性。 * * @author 老紫竹(laozizhu.com) */ p...

黑马程序员-----------JdK1.5新特性(一)---可变参数,增强for循环,自动装箱与拆箱,静态导入,枚举

JDK1.5新特性(一) 1.可变参数 2.增强的“for”循环(Enhanced For loop) 3.基本数据类型的自动拆箱与装箱。(Autoboxing/unboxing) 4.静态导...

黑马程序员Java类之枚举(Enum)

---------------------- android培训、java培训、期待与您交流! ----------------------  基础要点 1、枚举就相当于一个类,其中也可以定义构造...

黑马程序员 枚举学习笔记

-------   Android培训 、java培训 、期待与您交流 -------  一.什么是枚举以及枚举的作用(用一个普通类来模拟枚举的作用) 首先先看一段代码,如下所示: packag...

黑马程序员--张孝祥Java高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式

基本数据类型的自动拆箱与装箱

黑马程序员—枚举、宏定义、typedef、递归

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、枚举        表示固定的几个取值;大多用来与同事之前的交流。 1、定义枚举类型 ...
  • Verayu
  • Verayu
  • 2015年02月10日 20:48
  • 145

黑马程序员--IOS学习笔记(变量类型、结构体、枚举)

---------------------- blank">iOS开发、期待与您交流! ---------------------- 一、变量类型     1. 变量的作用域        c语言根...
  • malcold
  • malcold
  • 2015年04月12日 18:27
  • 116

java高新技术_枚举反射内省(黑马程序员)

------- android培训、java培训、期待与您交流! ---------- 我们在java的技术学习中要时刻注意新知识的学习 1.如何传入多个从参数?这里是指可变参数 我们知道1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_WeekDay 枚举代码练习
举报原因:
原因补充:

(最多只允许输入30个字)