天天看點

JAVA拾遺1

1  static修飾符

    類的成員變量分為靜态變量和執行個體變量,     被stacit修飾的變量,叫靜态變量,沒被修飾的就是執行個體變量了.

靜态變量的特點,在于其在記憶體中隻有一個COPY,在使用時不需要執行個體化,直接用類名來調用就可以了.

   同樣,比如

     public static int add()

 這樣的叫靜态方法,同樣,使用靜态方法時不需要執行個體化類.

   在靜态方法中要注意兩點

    A 靜态方法中,不能用this關鍵字,也不能通路非靜态變量,比如

    public class Voter{

    private static int count;   

  private String name;  

 public static void printVoteResult(){

    System.out.println("目前投票數為:"+count); //正确

     System.out.println("目前投票數為:"+name); //錯誤

  System.out.println("目前投票數為:"+this.name); //錯誤

  同樣,靜态方法中不能用super關鍵字

    此外,靜态方法必須被實作,因為靜态方法是表示某個類的特有功能,不需要執行個體化,是以必須要給實作.,比如

    static abstract void add()是錯誤的。

2  類的初始化

      A 對于final類型的變量,如果在編譯時能計算其值,則此時該類不會被初始化,比如

   class Tester

  {

   public static final int a=2*3;

static

  { 

System.out.println("abc");

    }

}

  public class samle

{

   System.out.println("a="+Tester.a);

  }

 則隻會輸出a=6

  而如果是編譯時算不出的話,則要初始化這個類,比如

   public static final int  a=....運算表達式;

3 final修飾符

    final修飾的方法不能被子類的方法覆寫,修飾的類不能被子類繼承,要注意的是,在一個類中,如果出現final常量,則必須被初始化,

  比如

  public a

  final int a;//錯誤

繼續閱讀