java物件導向編程(三)--類變數、類方法

來源:互聯網
上載者:User

標籤: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.類方法可以通過 [類名.類方法名] 直接存取

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.