A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张卯 于 2012-4-15 21:49 编辑
  1. package cn.itcast.day1;

  2. import java.util.Date;

  3. public class EnumTest {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 WeekDay1 weekDay = WeekDay1.MON;
  10.                 System.out.println(weekDay.nextDay());
  11.                
  12.                 WeekDay weekDay2 = WeekDay.FRI;
  13.                 System.out.println(weekDay2);
  14.                 System.out.println(weekDay2.name());
  15.                 System.out.println(weekDay2.ordinal());
  16.                 System.out.println(WeekDay.valueOf("SUN").toString());
  17.                 System.out.println(WeekDay.values().length);
  18.                
  19.                 new Date(300){};[color=Green]//这句什么意思?没弄明白。[/color]
  20.         }
  21.         
  22.         public enum WeekDay{
  23.                
  24.                 SUN(1),MON,TUE,WED,THI,FRI,SAT;//分号可以有也可以没有。
  25.                 private WeekDay(){System.out.println("first");}
  26.                 private WeekDay(int day){System.out.println("second");}
  27.         }
  28.         
  29.         public enum TrafficLamp{
  30.                 RED(30){

  31.                         @Override
  32.                         public TrafficLamp nextLamp() {
  33.                                 // TODO Auto-generated method stub
  34.                                 return GREEN;
  35.                         }
  36.                         
  37.                 },
  38.                 GREEN(45){

  39.                         @Override
  40.                         public TrafficLamp nextLamp() {
  41.                                 // TODO Auto-generated method stub
  42.                                 return YELLOW;
  43.                         }
  44.                
  45.                 },
  46.                 YELLOW(5){

  47.                         @Override
  48.                         public TrafficLamp nextLamp() {
  49.                                 // TODO Auto-generated method stub
  50.                                 return RED;
  51.                         }
  52.                         
  53.                 };
  54.                 public abstract TrafficLamp nextLamp();
  55.                 private int time;
  56.                 private TrafficLamp(int time){this.time = time;}
  57.         }
  58. }
复制代码
代码来源于“16_黑马程序员_张孝祥_Java基础加强_实现带有抽象方法的枚举”
语句位于22行:new Date(300){};//这句什么意思?没弄明白。
不知道为什么颜色没设置成功~

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

7 个回复

倒序浏览
这是使用了匿名内部类,既:创建了一个Date类的子类对象
不过,没看出这和枚举有什么关系,以及这句话有什么作用
回复 使用道具 举报
只是简单的举例了一下 子类有参的构造方法调用父类有参的构造方法
回复 使用道具 举报
刘基军 发表于 2012-4-15 21:56
这是使用了匿名内部类,既:创建了一个Date类的子类对象
不过,没看出这和枚举有什么关系,以及这句话有什么作 ...

匿名内部类我也明白,就是搞不懂这个为什么要搞这个Date~
回复 使用道具 举报
刘占月 发表于 2012-4-15 22:07
只是简单的举例了一下 子类有参的构造方法调用父类有参的构造方法

你的意思是说这句代码跟整个程序没有什么实际联系是吗?
回复 使用道具 举报
本帖最后由 小鹿叙鹿 于 2012-4-25 23:39 编辑

使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,
实际需要代表的月份减去1以后的值。例如上面的示例代码代表就是2009年3月9号。
实际代表具体的年月日时分秒的日期对象,和这个类似。

回复 使用道具 举报
张卯 中级黑马 2012-4-15 22:58:54
7#
小鹿叙鹿 发表于 2012-4-15 22:53
首先new Date(300){};需把;给去掉,这是错误的。
使用带参数的构造方法,可以构造指定日期的Date类对象,D ...

哥们儿啊,去掉分号才叫错呢,eclipse提示语法错误,根本没法运行~
回复 使用道具 举报
张卯 发表于 2012-4-15 22:40
你的意思是说这句代码跟整个程序没有什么实际联系是吗?

应该是的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马