亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java中static修飾屬性的案例

發布時間:2020-10-20 15:54:32 來源:億速云 閱讀:183 作者:小新 欄目:編程語言

小編給大家分享一下Java中static修飾屬性的案例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

static 關鍵字,我們在開發用的還是比較多的。在《Java編程思想》有下面一段話

static 方法就是沒有 this 的方法。在 static 方法內部不能調用非靜態方法,反過來是可以的。而且可以在沒有創建任何對象的前提下,僅僅通過類本身來調用 static 方法。這實際上正是 static 方法的主要用途。

static 的用法比較廣泛:靜態變量、靜態成員、靜態函數等。我們在使用單列模式的時候,就會用到它。并且 static 數據成員存儲在靜態存儲區,只存儲一次,可以節省內存。

static 聲明屬性

static 修飾成員變量

當我們需要在一個類(class)中定義一個屬性為公共的屬性,就好比說我們需要這個屬性是所有類都是共有的,并且這個屬性的值是同一個。

Test.java

class Book{
    
    // 設置一個默認的值
    static String pub = "清華大學出版社";
    
    // 用來和 static 作為對比
    String description = "描述";
    
    // Book 類正常的屬性
    private String title;
    private double price;
    
    // Book 的構造類
    public Book(String title, double price) {
        this.title = title;
        this.price = price;
    }
    
    // 獲取 Book 的信息
    public void getInfo(){
        System.out.println("圖書名稱:"+ this.title + ",價格為:"+ this.price + ",出版社為:"+ this.pub + ",描述 "+ this.description);
    }
}

public class Test {

    public static void main(String[] args) {
        // 實例化三個Book類
        Book book1 = new Book("Android開發實戰", 69.8);
        Book book2 = new Book("Java EE開發實戰", 49.8);
        Book book3 = new Book("Java 開發教程", 79.8);
        
        // 在沒有設置 pub 屬性的情況下輸出
        book1.getInfo();
        book2.getInfo();
        book3.getInfo();
        
        System.out.println("————————————————————無敵分割線————————————————————");
        
        // 我們給 book1 設置一個 pub 屬性
        book1.pub = "中信出版社";
        book1.description = "這本書很牛逼,看了你就知道";
        
        book1.getInfo();
        book2.getInfo();
        book3.getInfo();
    }
}

控制臺輸出

圖書名稱:Android開發實戰,價格為:69.8,出版社為:清華大學出版社,描述 描述
圖書名稱:Java EE開發實戰,價格為:49.8,出版社為:清華大學出版社,描述 描述
圖書名稱:Java 開發教程,價格為:79.8,出版社為:清華大學出版社,描述 描述
————————————————————無敵分割線————————————————————
圖書名稱:Android開發實戰,價格為:69.8,出版社為:中信出版社,描述 這本書很牛逼,看了你就知道
圖書名稱:Java EE開發實戰,價格為:49.8,出版社為:中信出版社,描述 描述
圖書名稱:Java 開發教程,價格為:79.8,出版社為:中信出版社,描述 描述

從控制臺輸出的結果,可以看到:

  • 如果給 屬性 賦默認值,在上面的例子中是(description 和 pub),輸出的結果為都是默認的。

  • 當我們修改了類中 static 關鍵字聲明的屬性,那么只要修改了一次,那么其他所有的對象的這個屬性都配修改了。

通過類調用 static 聲明的屬性

但是基于上面的代碼,我們發現如果是其中的一個類對象就改變了所有的對象的屬性,這樣子操作是不是感覺不是特別好?然后在Java中,如果是使用 static 聲明的屬性值,是可以直接通過類調用的。

public class Test {

    public static void main(String[] args) {
        // 實例化三個Book類
        Book book1 = new Book("Android開發實戰", 69.8);
        Book book2 = new Book("Java EE開發實戰", 49.8);
        Book book3 = new Book("Java 開發教程", 79.8);
        
        // 在沒有設置 pub 屬性的情況下輸出
        book1.getInfo();
        book2.getInfo();
        book3.getInfo();
        
        System.out.println("————————————————————無敵分割線————————————————————");
        
        // 我們使用 Book 類直接調用pub
        Book.pub = "中信出版社";
        
        book1.description = "這本書很牛逼,看了你就知道";
        
        book1.getInfo();
        book2.getInfo();
        book3.getInfo();
    }
}

沒有實例化類時,調用 static 屬性

Test.java

class Book{
    
    // 設置一個默認的值
    static String pub = "清華大學出版社";
    
    // 用來和 static 作為對比
    String description = "描述";
    
    // Book 類正常的屬性
    private String title;
    private double price;
    
    // Book 的構造類
    public Book(String title, double price) {
        this.title = title;
        this.price = price;
    }
    
    // 獲取 Book 的信息
    public void getInfo(){
        System.out.println("圖書名稱:"+ this.title + ",價格為:"+ this.price + ",出版社為:"+ this.pub + ",描述 "+ this.description);
    }
}

public class Test {

    public static void main(String[] args) {
        // 在沒有實例化對象時,就調用
        System.out.println(Book.pub);
        
        // 沒事實例化對象的時候,去給static屬性賦值上默認值
        Book.pub = "北京大學出版社";
        System.out.println(Book.pub);
        
        // 新建一個類,輸入 pub 屬性
        Book book = new Book("Java", 88);
        book.getInfo();
    }
}

控制臺輸出

清華大學出版社
北京大學出版社
圖書名稱:Java,價格為:88.0,出版社為:北京大學出版社,描述 描述

由此,我們看出,在沒有實例化對象的時候,就可以直接通過類去掉用 static屬性,并且還可以修改 static 的屬性。static 屬性聲明雖然是在類的結構中,但是并不受到對象的控制,是獨立存在的。

static 屬性與非 static 屬性的區別

  • static 聲明的屬性和普通屬性(非 static 屬性)最大的區別在于保存的內存區域不同。static 所修飾的在靜態數據區。而不是在堆和棧。

  • static 屬性與非 static 屬性還有一個最大的區別,就是在于所有非 static 屬性必須產生實例化之后才可以訪問,但是static 屬性不受實例化對象的控制。也就是說,在沒有產生實例化對象的情況下,依然可以使用 static 對象。

以上是Java中static修飾屬性的案例的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

永登县| 荣成市| 阳泉市| 盱眙县| 宁化县| 平遥县| 雷波县| 淮北市| 义马市| 永善县| 栾城县| 九江县| 乐业县| 合山市| 揭东县| 太白县| 马关县| 昌都县| 屏山县| 宁南县| 天全县| 柘城县| 延津县| 龙南县| 永吉县| 平凉市| 新兴县| 海城市| 定州市| 九寨沟县| 贺州市| 通许县| 潜江市| 明水县| 洛南县| 揭阳市| 永兴县| 青河县| 安宁市| 西乌| 新巴尔虎左旗|