建立靜態方法與變數

    -類別先載入記憶體,在根據類別產出物件。

    -類別只會再記憶體內存在一次。

小結:

    -以static修飾後,由instance-level轉成class-level

    -class只會再記憶體內存在一次

    -以static修飾屬性,則該屬性在不同的instance之間可以共享資料(或彼此互相干擾)。

靜態方法/變數之法則

    -不可以在static-context內存取non-static的屬性或方法。

    -反之,可以。 


EX1:

public class Q1{

    private int Id;

    public void setId(int Id){

         this.Id = id;

    }

    public int getId(){

         return id;

    }

}

public class Main{

    public static void main(String[] arge){

          Q1  q1 = new Q1();

          Q1  q2 = new Q1();

          q1.setId(1);

          q2.setId(2);

          System.out.println(q1.getId());

          System.out.println(q2.getId());

     }

}

Out:

        1

        2


    

EX2:

public class Q1{

    private static int Id;       <<<---升級為class-level可資料共享(或彼此互相擾)

    public void setId(int Id){

         this.Id = id;

    }

    public int getId(){

         return id;

    }

}

public class Main{

    public static void main(String[] arge){

          Q1  q1 = new Q1();

          Q1  q2 = new Q1();

          q1.setId(1);

          q2.setId(2);

          System.out.println(q1.getId());

          System.out.println(q2.getId());

     }

}

Out:

        2

        2


EX3:

public class Main{

    public void f1(){

         Main main = new Main();

         String[] test = {"1"};       <<<--- non-static-context可存取static

         main.main(test);

    }

    public static void main(String[] arge){

         //f1();    <<<---static-context無法存取non-static

     }

}

arrow
arrow
    文章標籤
    java static
    全站熱搜

    淺翔 發表在 痞客邦 留言(0) 人氣()