1. 程式人生 > >Java 類屬性

Java 類屬性

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

步驟 1 : 類屬性

類屬性: 又叫做靜態屬性 
物件屬性: 又叫例項屬性,非靜態屬性 
如果一個屬性宣告成類屬性,那麼所有的物件,都共享這麼一個值 
給英雄設定一個類屬性叫做“版權" (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);
         
    }
     
}

步驟 2 : 訪問類屬性

訪問類屬性有兩種方式
1. 物件.類屬性

teemo.copyright

2. 類.類屬性

Hero.copyright

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

步驟 3 : 什麼時候使用物件屬性,什麼時候使用類屬性

如果一個屬性,每個英雄都不一樣,比如name,這樣的屬性就應該設計為物件屬性,因為它是跟著物件走的,每個物件的name都是不同的

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

步驟 4 : 練習-類屬性

通過garen.copyright修改其值

garen.copyright = "Blizzard Entertainment Enterprise";

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