Java 類屬性
阿新 • • 發佈:2018-12-16
當一個屬性被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,觀察是否有變化