黑马程序员 java学习笔记(day08)

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

 

 这段时间看了java高新技术部分,大体可分为Eclipse的基本操作,枚举,注解,反射,泛型等等,比之之前学习的Java基础视频要难上很多,我都是看了好几遍才大致能理解讲课的内容。
    这些部分值得我重点掌握,就像枚举,我之后需要学习的交通灯7K面试题就需要用到,枚举在之前的Java中是没有的,但是后来随着技术的需要,jdk1.5后又将枚举加入进来了。用普通类实现枚举功能应先私有构造方法,然后每个元素分别用一个公有的静态成员表示,可以有若干个公有方法或抽象方法。比如列举星期,就应该用到枚举,在枚举中采用抽象方法定义nextDay就将大量的if.else语句转移成了一个个独立的类。并且学习了带有构造方法的枚举;
public enum WeekDay{

  SUN(1),MON(),TUE,WED,THI,FRI,SAT;
  private WeekDay(){System.out.println("first");}
  private WeekDay(int day){System.out.println("second");}
 }
当构造方法不带参数时,比如(MON(),TUE,WED,THI,FRI,SAT;)系统默认是空参数的,打印出的结果是first。当构造方法带int型参数时,如(SUN(1)),打印的结果为second

带有抽象方法及构造方法的枚举:

public enum TrafficLamp{
  RED(30){
   public  TrafficLamp nextLamp(){
    return GREEN;
   }
  },
  GREEN(45){
   public  TrafficLamp nextLamp(){
    return YELLOW;
   }   
  },
  YELLOW(5){
   public  TrafficLamp nextLamp(){
    return RED;
   }   
  };
  public abstract TrafficLamp nextLamp();
  private int time;
  private TrafficLamp(int time){this.time = time;}
 }

每个元素分别由枚举类的子类来生成实例对象,这些子类采用类似内部类的方式进行定义。并且当枚举只有一个成员时,就可以作为一种单例的实现方式。

 

你可能感兴趣的:(黑马程序员 java学习笔记(day08))