1. 程式人生 > >Java面向物件關鍵字static

Java面向物件關鍵字static

當一個變數需要初始化載入或者經常呼叫的時候,可以加上static

static 關鍵字修飾成員,包括成員變數和方法,被修飾的成員變數和方法叫做類成員,其中成員變數叫類成員,成員方法叫類方法

使用static修飾的叫類成員,沒有使用的是例項成員;

被修飾的成員具有以下特點:

      隨著類的載入而載入;優先於物件存在;被所有物件所共有;可以直接被類名呼叫。

注意事項:

      靜態方法只能訪問靜態成員;靜態方法中不可以使用this,super關鍵字;主方法是靜態的(所以可以直接被類名呼叫)。

/**
 * Created by Administrator on 2018/9/30.
 * 下面是建立普通例項變數、方法以及類變數和方法
 */
public class Student {
    String name="zhzang";
    static int age=3;
    public void putong(){
        //普通方法可以呼叫類方法以及類成員;
        leichengyuan();
        System.out.println(name+age);
    }

    public static void leichengyuan(){
        //類方法不可以呼叫例項方法以及例項成員;
        System.out.println(age);
    }
}
//呼叫執行結果,例項方法需要物件名.方法名呼叫;類方法是用類名.方法名呼叫;
  public static void main(String[] args) {
        Student student=new Student();
        student.putong();
        Student.leichengyuan();
    }

區別總結:

     1、所有該類物件共享類方法和例項方法

     2、類方法使用類名.方法名呼叫;例項方法使用物件名.方法名呼叫

     3、例項方法可以呼叫類方法以及類變數,類方法不能直接呼叫例項方法以及變數,要訪問他們必須使用物件引用;

      4、類方法不能使用this關鍵字,因為麼用this的例項供使用;

static靜態程式碼塊

       通常用於為類的程式碼塊做初始化執行

/**
 * Created by Administrator on 2018/9/30.
 */
public class Student {
    private static int age;// 靜態變數
    private int high;// 例項變數

    static {
        Student.age = 3;
        System.out.println(age);
        Student student = new Student();
        student.te();
        student.high= 110;
        System.out.println(student.high);
    }
    static {
        Student.age = 10;
        System.out.println(age);
    }


    public void te() {
        System.out.println("ceshisihishi...");
    }
    /**執行結果
     * 3
     * ceshisihishi...
     * 110
     * 10
     */
}

//呼叫執行程式碼塊

public static void main(String[] args) {
      Student student=new Student();
    }