255、Java基礎32 - 類和對象【類屬性(靜態屬性)】 2019.11.16

1、靜態屬性

  • 當一個屬性被static修飾的時候,就叫做類屬性,又叫做靜態屬性
  • 當一個屬性被聲明成類屬性,那麼所有的對象,都共享一個值
  • 與對象屬性對比:
  • 不同對象的 對象屬性 的值都可能不一樣
    比如蓋倫的hp 和 提莫的hp 是不一樣的
    但是所有對象的類屬性的值,都是一樣的

2、類屬性

類屬性: 又叫做靜態屬性
對象屬性: 又叫實例屬性,非靜態屬性
如果一個屬性聲明成類屬性,那麼所有的對象,都共享這麼一個值
給英雄設置一個類屬性叫做“版權" (copyright), 無論有多少個具體的英雄,所有的英雄的版權都屬於 Riot Games公司。

package charactor;
 
public class Hero {
    public String name; //實例屬性,對象屬性,非靜態屬性
    protected float hp;
    static String copyright;//類屬性,靜態屬性
     
    public static void main(String[] args) {
           Hero garen =  new Hero();
           garen.name = "蓋倫";
            
           Hero.copyright = "版權由Riot Games公司所有";
           System.out.println(garen.name);
           System.out.println(garen.copyright);
            
           Hero teemo =  new Hero();
           teemo.name = "提莫";
           System.out.println(teemo.name);    
           System.out.println(teemo.copyright);
         
    }
     
}

3、訪問類屬性

訪問類屬性有兩種方式

  1. 對象.類屬性
teemo.copyright
  1. 類.類屬性
Hero.copyright

這兩種方式都可以訪問類屬性,訪問即修改和獲取,但是建議使用第二種 類.類屬性 的方式進行,這樣更符合語義上的理解

4、什麼時候使用對象屬性?什麼時候使用類屬性?

  • 如果一個屬性,每個英雄都不一樣,比如name,這樣的屬性就應該設計爲對象屬性,因爲它是跟着對象走的,每個對象的name都是不同的

  • 如果一個屬性,所有的英雄都共享,都是一樣的,那麼就應該設計爲類屬性。比如血量上限,所有的英雄的血量上限都是 9999,不會因爲英雄不同,而取不同的值。 這樣的屬性,就適合設計爲類屬性

5、練習-類屬性

通過garen.copyright修改其值

garen.copyright = "Blizzard Entertainment Enterprise";

然後打印teemo.copyright,觀察是否有變化

public class Hero {
 
    public String name;// 實例屬性、對象屬性、非靜態屬性
    protected float hp;
    static String copyright;// 靜態屬性、類屬性
    
    public static void main(String[] args) {
        Hero garen = new Hero();
        garen.name = "蓋倫";
       
        garen.copyright = "Blizzard Entertainment Enterprise";
        
        System.out.println(garen.name);
        System.out.println(garen.copyright);
        
        Hero teemo = new Hero();
        teemo.name = "提莫";
        System.out.println(teemo.name);
        System.out.println(teemo.copyright);
    }
}
// 結果:有變化
// 輸出結果,截圖

在這裏插入圖片描述

6、參考鏈接

[01] How2j - 類和對象系列教材 (九)- JAVA的類屬性,靜態屬性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章