溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中的靜態變量和靜態方法

發布時間:2020-06-25 20:15:28 來源:億速云 閱讀:219 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關java中的靜態變量和靜態方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

什么是靜態變量

Java 中被 static 修飾的成員稱為靜態成員或類成員。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。

使用 static 可以修飾變量、方法和代碼塊。

public class Test1 {
    // static修飾的變量為靜態變量,所有類的對象共享hobby
    static String hobby = "Tedu";
    
    public static void main(String[] args) {
        // 靜態變量可以直接使用類名來訪問,無需創建對象
        System.out.println("通過類名訪問hobby:" + Test1.hobby);
        // 創建類的對象
        Test1 t1 = new Test1();
        // 使用對象名訪問靜態變量
        System.out.println("使用對象名訪hobby:" + t1.hobby);
        // 使用對象名的形式修改靜態變量的值
        t1.hobby = "cjj";
        // 再次使用類名訪問靜態白變量,值已經被修改
        System.out.println("通過類名訪問hobby:" + Test1.hobby);
    }
}

運行結果:

通過類名訪問hobby:Tedu
使用對象名訪hobby:Tedu
通過類名訪問hobby:cjj

注意:靜態成員屬于整個類,當系統第一次使用該類時,就會為其分配內存空間直到該類被卸載才會進行資源回收!

什么是靜態方法

與靜態變量一樣,我們也可以使用 static 修飾方法,稱為靜態方法或類方法。其實之前我們一直寫的 main 方法就是靜態方法。

public class Test01 {
    //使用static關鍵字聲明靜態方法
    public static void print() {
        System.out.println("歡迎你:Cjj!");
    }
    public static void main(String[] args) {
        //直接使用類名調用靜態方法
        Test01.print();
        //也可以通過對象名調用,當然更推薦使用類名調用
        Test01 t1 = new Test01();
        t1.print();
    }
}

運行結果:

歡迎你:Cjj!
歡迎你:Cjj!

注意:

1、 靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。如:

java中的靜態變量和靜態方法

如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象,然后通過對象來訪問非靜態變量。如:

java中的靜態變量和靜態方法

2、 在普通成員方法中,則可以直接訪問同類的非靜態變量和靜態變量,如:

java中的靜態變量和靜態方法

3、 靜態方法中不能直接調用非靜態方法,需要通過對象來訪問非靜態方法。如:

public class Test01 {
    String name = "Cjj"; //靜態成員變量
    static String hobby = "study"; //非靜態成員變量
    
    //普通成員方法
    public void print1() {
        System.out.println("普通成員方法~~~"); 
    }
    
    //靜態成員方法
    public static void print2() {
        System.out.println("靜態成員方法~~~");
    }
    
    public static void main(String[] args) {
        //普通成員方法必須通過對象來調用
        Test01 t1 = new Test01();
        t1.print1();
        //可以直接調用靜態方法
        print2();
    }
}

看完上述內容,你們對java中的靜態變量和靜態方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女