黑马程序员技术交流社区

标题: 求解释!看过张孝祥老师基础加强视频的进~ [打印本页]

作者: 张卯    时间: 2012-4-15 21:45
标题: 求解释!看过张孝祥老师基础加强视频的进~
本帖最后由 张卯 于 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){};//这句什么意思?没弄明白。
不知道为什么颜色没设置成功~

作者: 刘基军    时间: 2012-4-15 21:56
这是使用了匿名内部类,既:创建了一个Date类的子类对象
不过,没看出这和枚举有什么关系,以及这句话有什么作用
作者: 刘占月    时间: 2012-4-15 22:07
只是简单的举例了一下 子类有参的构造方法调用父类有参的构造方法
作者: 张卯    时间: 2012-4-15 22:33
刘基军 发表于 2012-4-15 21:56
这是使用了匿名内部类,既:创建了一个Date类的子类对象
不过,没看出这和枚举有什么关系,以及这句话有什么作 ...

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

你的意思是说这句代码跟整个程序没有什么实际联系是吗?
作者: 小鹿叙鹿    时间: 2012-4-15 22:53
本帖最后由 小鹿叙鹿 于 2012-4-25 23:39 编辑

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


作者: 张卯    时间: 2012-4-15 22:58
小鹿叙鹿 发表于 2012-4-15 22:53
首先new Date(300){};需把;给去掉,这是错误的。
使用带参数的构造方法,可以构造指定日期的Date类对象,D ...

哥们儿啊,去掉分号才叫错呢,eclipse提示语法错误,根本没法运行~
作者: 刘占月    时间: 2012-4-16 08:01
张卯 发表于 2012-4-15 22:40
你的意思是说这句代码跟整个程序没有什么实际联系是吗?

应该是的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2