静态导入与枚举

1.package cn.itcast.day1;
//普通导入、import static
import static java.lang.Math.max;//静态导入的是某个方法,
public class StaticImport {
 public static void main(String[]args){
  int x=1;
  
  try {
   x++;
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  System.out.println(max(3,12));
  System.out.println(++x);
 }
 

}/*/可变性JDK 1.5新特性: 可变参数
 overload override

*/

2.package cn.itcast.day1;

public class Autobox {
 public static void main(String[] args){
  Integer iObj = 3;
  System.out.println(iObj+ 12);
  Integer i1 = 128;
  Integer i2 = 128;
  Integer i3 =127;
  Integer i4 =127;
  // [-128,127]的数会被存储在缓存池中,
  
  System.out.println(i1==i2);
  System.out.println(i3==i4);
  }
 /*享元模式Fliweight Patterm 享元模式(英语:Flyweight Pattern)是一种软件设计模式。
  * 它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。
  * 通常物件中的部分状态是可以分享。常见
  * 做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。*/
}

2.2 package cn.itcast.day1;

public class varableparameter {
 public static void main(String[] args){
  System.out.println(add(2,3,5));
 }
 public static int add(int x,int...args)
 {
  int sum = x;
  for(int i=0;i<args.length;i++)
   sum += args[i];
  /*增强型FOR循环
    for(int arg:args){
   sum +=arg;
  }*/
 return sum; 
 }
 
}

3.1 package cn.itcast.day1;

public abstract class AbstractWeekDay {
 private AbstractWeekDay(){}
 public final static AbstractWeekDay SUN=new AbstractWeekDay(){
  @Override
  public AbstractWeekDay nextDay(){
   return MON;
  }
  };
  public final static AbstractWeekDay MON=new AbstractWeekDay(){
   public AbstractWeekDay nextDay(){
    return TUE;
    }
   };
  public final static AbstractWeekDay TUE=new AbstractWeekDay(){
   public AbstractWeekDay nextDay(){
    return WED;
   }
  };
  public final static AbstractWeekDay WED=new AbstractWeekDay(){
   public AbstractWeekDay nextDay(){
    return THU;
   }
  };
  public final static AbstractWeekDay THU=new AbstractWeekDay(){
   public AbstractWeekDay nextDay(){
    return FRI;
    }
   };
  public final static AbstractWeekDay FRI=new AbstractWeekDay(){
   public AbstractWeekDay nextDay(){
    return SAT;
   }
  };
  public final static AbstractWeekDay SAT=new AbstractWeekDay(){
   public AbstractWeekDay nextDay(){
    return SUN;
   }
  };
  public abstract AbstractWeekDay nextDay();
  public String toString(){
   if (this==SUN)
    return "SUN";
    else if(this==MON)
      return "MON";
      else if(this==TUE)
       return "TUE";
      else if (this==WED)
       return "WED";
      else if (this==THU)
       return "THU";
      else if (this==FRI)
        return "FRI";
      else
       return "Sat";
      
  }

}
3.2

package cn.itcast.day1;

public class WeekDay1
{
 private WeekDay1(){}
 public final static WeekDay1 Sun=new WeekDay1();
 public final static WeekDay1 Mon=new WeekDay1();
 public final static WeekDay1 Tue=new WeekDay1();
 public final static WeekDay1 Wed=new WeekDay1();
 public final static WeekDay1 Thu=new WeekDay1();
 public final static WeekDay1 Fri=new WeekDay1();
 public final static WeekDay1 Sat=new WeekDay1();
 public WeekDay1 nextDay()
 {
  if(this==Sun)
   return Mon;
  else {
   if(this == Mon)
    return Tue;
   else {
    if(this==Tue)
     return Wed;
    else{
     if(this==Thu)
      return Fri;
     else{
      if(this==Fri)
       return Sat;
      else
       return Sun;
      
      
     }
    }
   }
  }
 }
 public String toString(){
  if (this==Sun)
   return "Sun";
   else if(this==Mon)
     return "Mon";
     else if(this==Tue)
      return "Tue";
     else if (this==Wed)
      return "Wed";
     else if (this==Thu)
      return "Thu";
     else if (this==Fri)
       return "Fri";
     else
      return "Sat";
     
 }
}
 
3.3枚举

package cn.itcast.day1;

public class EnumTest {
 public static void main(String[]args){
  WeekDay1 weekday=WeekDay1.Mon;
  AbstractWeekDay weekDay1 =AbstractWeekDay.TUE;
  WeekDay Weekday = WeekDay.TUE;
  WeekDay Weekday1 = WeekDay.TUE;
  System.out.println(weekday.nextDay());
  System.out.println(weekDay1.nextDay());
  System.out.println(Weekday);
  System.out.println(Weekday.name());
  System.out.println(WeekDay.valueOf("SUN").toString());
  System.out.println(Weekday.ordinal());
  System.out.println(Weekday.compareTo(Weekday));
  System.out.println(Weekday.getClass());
  System.out.println(weekday.getClass());
  System.out.println(Weekday1.equals(Weekday));
  /*System.out.println(Weekday.hashCode());
  System.out.println(Weekday.values().hashCode());*/
 }
 public enum WeekDay{
 SUN(2),MON,TUE,WED,THU,FRI,SAT ;
 private WeekDay(){System.out.println("first");};
 private WeekDay(int day){System.out.println("second");};
}
 public enum TrafficLamp{
  RED(30) {
   @Override
   public TrafficLamp nextLamp() {
    // TODO Auto-generated method stub
    return GREEN;
   }
  } ,GREEN (45){
   @Override
   public TrafficLamp nextLamp() {
    // TODO Auto-generated method stub
    return YELLOW;
   }
  },YELLOW (5){
   @Override
   public TrafficLamp nextLamp() {
    // TODO Auto-generated method stub
    return RED;
   }
  };
  public abstract TrafficLamp nextLamp();
  private int time;
  private TrafficLamp(int time){this.time = time;};
 }

}//如何使用这个枚举????