11.Java2核心技术—Java5.0新特性

1.自动装箱和解箱(自动打包和拆包)

   装箱就是将8中节本数据类型自动转换为对象,这种技术是在5.0之前是没有的,5.0之前都是手工装箱。解箱就是反过来。

   byte->Byte int->Integer short->Short  char->Character long->Long float->Float double->Double

   需要注意的是自动装箱有一个范围,比如byte、int、char,如果它们的值介于-128到127之间,可以进行自动装箱,否则会出现错误的。

2.可变长参数

   在5.0以前一个方法的参数都是固定的,而5.0及以后的版本提供了一个方法参数可变长的技术。但是需要注意的是一个方法的参数列表最多有一个可变长的参数,而

且这个可变长参数必须是最后一个参数。public void method(string... args)

3.静态导入

    从5.0开始,import不仅可以导入类,也提供了导入静态方法和属性的功能。import static ......

    需要注意的是 import static 只能导入静态的方法或属性;不能只导入类或非静态的方法。

    导入静态属性 import static java.lang.System.out;
    导入静态方法 import static java.lang.Math.random;
    如:import static java.lang.System.*; out.println(“a”);  //等于System.out.println("a");     

          import static java.lang.System.gc; 则可以直接在程序中用 gc(); //等于System.gc();

4.for each循环 for(:) 遍历

  ...................

5.枚举(enum)

   枚举是一个具有特定值的类型,而我们用的时候只能取其中的一个值。

   在枚举中可以定义构造器,但是这个构造器是私用的,默认下枚举的构造器是私有的,这个构造器只在构造枚举常量的时候调用。

   enum Season{
        SPRING("春"), SUMMER("夏"),  AUTUMN("秋"),  WINTER("冬");
        String name;//默认为private
        Season(String name){ this.name=name; }//默认为private
        public String getName(){return this.name;}

  }

 枚举中可以定义抽象方法,但是这个抽象方法必须在自己的枚举值中实现,因为枚举默认是final类型的,不能被继承。

  enum Teacher{
      LIUCY("liuchunyang"){void teach(){out.println(name+" teach UC");}},
      CHENZQ("chenzongquan"){void teach(){out.println(name+" teach C++");}},
      HAIGE("wanghaige"){void teach(){out.println(name+" teach OOAD");}};
      String name;
      TarenaTeacher(String name){this.name=name;}
      abstract void teach();//定义抽象方法
  }

所有的枚举类型都是Enum的子类。

6.泛型

你可能感兴趣的:(java)