帶你瞭解Java中Static關鍵字的用法

Java中Static關鍵字的一些用法詳解

1. Static 修飾類屬性,因為靜態成員變量可以通過類名+屬性名調用,非靜態成員變量不能通過類名+屬性名調用;

public class Student {
    private static int number;//靜態變量
    private String name;//非靜態變量
    public static void main(String[] args) {
        System.out.println(Student.number);
        System.out.println(Student.name);//會報錯 因為非靜態成員變量不能通過類名+屬性名調用
    }
}

2. Static 修飾類方法,可以通過類名.靜態方法名的方式調用靜態方法,不可以用類名.靜態方法名調用非靜態方法;

public class Student {
    public static void go(){};//靜態方法
    public  void run(){};//非靜態方法
    public static void main(String[] args) {
        Student.go();//可以用類名.靜態方法名的方式調用靜態方法
        Student.run();//報錯,不可以用類名.靜態方法名調用非靜態方法
    }
}

3. 靜態代碼塊,匿名代碼塊,構造函數。三者的調用順序為(靜態代碼塊(隻調用1次) –> 匿名代碼塊 –> 構造函數)。

public class Student {
    //匿名代碼塊,每創建一個student對象就會調用一次匿名代碼塊
    {
        System.out.println("調用匿名代碼塊");
    }
    //靜態代碼塊,和類加載一起發生,隻會調用一次
    static {
        System.out.println("調用靜態代碼塊");
    }
    //構造函數,每創建一個student對象就會調用一次該方法
    public Student() {
        System.out.println("調用構造函數");
    }
    public static void main(String[] args) {
        new Student();
        new Student();
    }
}

【第三點 測試結果】

在這裡插入圖片描述

總結

本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: