標籤:style blog color java 使用 strong 資料 ar
1.什麼是類變數?
類變數是該類的所有對象共用的變數,任何一個該類的對象去訪問它時,取到的都是相同的值,同樣任何一個該類的對象去修改它時,修改的也是同一個變數。
如何定義類變數?
定義文法:
存取修飾詞 static 資料類型 變數名;
如何訪問類變數?
類名.類變數名 或者 對象名.類變數名
案例:有一群小孩玩堆雪人,不時有新的小朋友加入,請問如何知道現在共有多少人在玩?請使用物件導向的思想,編寫程式解決。
public class Demo113{ public static void main(String []args){ /*非物件導向方法 int total=0; Child ch1=new Child(3,"妞妞"); ch1.joinGame(); total++; Child ch2=new Child(4,"小小"); ch2.joinGame(); total++; */ //物件導向辦法 Child ch1=new Child(3,"小龍"); ch1.joinGame(); Child ch2=new Child(4,"剛子"); ch2.joinGame(); Child ch3=new Child(5,"康康"); ch3.joinGame(); System.out.println("共有="+Child.total); }}//定義小孩類class Child{ int age; String name; //total是靜態變數,因此它可以被任何一個對象訪問 static int total=0; public Child(int age,String name){ this.age=age; this.name=name; } public void joinGame(){ total++; System.out.println("有一個小孩加入了"); }}
2.什麼是類方法,為什麼有類方法?
類方法是屬於所有對象執行個體的,其形式如下:
存取修飾詞 static 資料傳回型別 方法名(){}
注意:類方法中不能訪問非靜態變數(類變數)。
使用:
類名.類方法名 或者 對象名.類方法名
static靜態方法可以訪問static靜態變數,不能訪問非靜態變數(類變數),非靜態方法可以訪問非靜態變數(類變數),同時也可以訪問static靜態變數。
案例:統計總學費的程式碼,加深static靜態方法由靜態變數的訪問[Demo115.java]
public class Demo115{ public static void main(String []args){ //建立一個學生 Stu stu1=new Stu(29,"aa",340); Stu stu2=new Stu(29,"aa",240); System.out.println(Stu.getTotalFee()); }}//學生類class Stu{ int age; String name; int fee; static int totalFee; public Stu(int age,String name,int fee){ this.age=age; this.name=name; totalFee+=fee; } //返回總學費[這是一個類方法(靜態方法)] //java中規則:類變數原則上用類方法去訪問或操作 public static int getTotalFee(){ return totalFee; }}
3.其他問題
1、什麼時候需要用類變數
如案例[Demo115.java]:定義學生類,統計學生共交多少錢?用類變數,表示公用的屬性
2、類變數與成員變數區別:
a.加上static稱為類變數或靜態變數,否則稱為成員變數
b.類變數是與類相關的,屬於公用的屬性
c.成員變數屬於每個對象個體的屬性
d.類變數可以通過 [類名.類變數名] 直接存取
3、什麼時候需要用類方法
如案例[Demo115.java]:定義學生類,統計學生共交多少錢?
4、類方法與類變數區別:
a.類方法屬於與類相關的,屬於公用的方法
b.成員方法屬於每個對象個體的方法
c.類方法可以通過 [類名.類方法名] 直接存取