SCJP5学习散记1

花了三天的时间看了<Apress.SCJP.Exam.for.J2SE.5.May.2006>这本书的的Chapter2至Chapter6

摘录了其中J2SE5一些新引用的功能.

1、enum 类型

//定义enum类型
enum AllowedCreditCard {VISA, MASTER_CARD, AMERICAN_EXPRESS};
//使用enum
AllowedCreditCard visa = AllowedCreditCard.VISA;

在J2SE5之前通过是通过类似:
public static final int VISA = 1;
public static final int MASTER_CARD = 2;
public static final int AMERICAN_EXPRESS = 3;
的方式来实现一个类似的功能


2、Methods with a Variable Number of Parameters
   可变参数个数的方法

    限制:
         1、每一个方法只能拥有一个可变参数长度列
         2、由类型加三个点组成 如: int…
         3、此可变参数长度列必需是方法的最后一个参数。

示例代码:
import java.io.*;
class MyClass {
public void printStuff(String greet, int... values) {
for (int v : values) {
System.out.println(greet + ":" + v);
}
}
}

class VarargTest {
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.printStuff("Hello", 1);
mc.printStuff("Hey", 1, 2);
mc.printStuff("Hey you", 1, 2, 3);
}
}


3、a special kind of import called static import
   从J2SE5开始,可以通过使用static import 将类的static变量引进来,而不必引入
   整个class然后再使用此static变量

//不使用static import
class NoStaticImport {
public static void main(String[] args) {
System.out.println("Pi:" + Math.PI);
System.out.println("E:" + Math.E);
}
}

//使用staitc import
import static java.lang.Math.PI;
import static java.lang.Math.E;
class StaticImportTest{
  public static void main(String[] args) {
    System.out.println("Pi:" + PI);
    System.out.println("E:" + E);
  }
}


Static import需要注意以下三点:
    1、import在static之前   如:import static java.lang.Math.PI;
    2、可能使用通配符 * 去导入相应类的所有静太变量
     3、static import 还可以导入 static object references、static method


4、覆盖
   在J2SE 5.0之前的版本,要求子类的覆盖方法需要与被覆盖方法拥有相同的名称、参数、返回值类型,
   但在J2SE5之后,允许覆盖方法的返回值类型为父类被覆盖方法返回值类型的子类。称之为covariant return
如:
class A{
  public Number test(int i,int j){
      System.out.println("I am A's method.");
      return new Double(0);
  }
}
class B extends A{
  public Double test(int i,int j){
    System.out.println("I am B's method.");
     return new Double(0);
  }
}


5、新的循环控制for-each循环
for (<variable> : <collection>) {
// the block code
}

示例:
int[] array=new int[]{1,2,3};
for(int i:array){
  System.out.println(i);
}
输出的结果为:
1
2
3

你可能感兴趣的:(J2SE,J#)