iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

菜雞的JAVA日記系列 第 9

DAY9-JAVA的類別(3)-多載

多載
利用JAVA中的多載,就不需要這麼多的函數來做相同的工作!
那多載到底是什麼呢?其實就是指相同的函數名稱,可根據其引數的個數或是引數的型態不同,來設計不同功能。

多載常犯錯誤
使用多載時,編譯器會根據引數的個數與型態,來呼叫相對應的函數,因此每一個多載函數的引數個數或引數型態必須不同。

但是多載也允許函數的引數個數和型態不同,且回傳型態也不相同。

void area(int height ,double width);
int area(double width);

公有成員
可以在類別外部做修改,但是卻隱藏著危險!

class Test{
    int height = 10;
    int width = 20;
    
    void area(){
        System.out.println("area = "+height*width);
    }
}

public class IT_Test{
    public static void main(String args[]){
        Test lala = new Test();
        lala.height = 30;   //在類別外可以直接更改成員資料
        lala.area();
    }
}

私有成員
如果沒有一個機制來限定類別中資料成員的存取,很可能會造成錯誤輸入。所以我們就可以透過私有成員(private member)來設定。

class Test{
    private int height = 10;
    private int width = 20;
    ...
}

如果在field宣告的前面加上private,則無法從類別(Test)以外的地方設定或讀取,因此可以達到保護資料的目的。

class Test{
    private int height = 10;
    private int width = 20;
    
    void area(){
        System.out.println("area = "+height*width);
    }
}

public class IT_Test{
    public static void main(String args[]){
        Test lala = new Test();
        lala.height = 30;    //在類別外不可以直接更改成員資料
        lala.area();
    }
}

上面的程式就會跳出錯誤的結果!

省略public與private
public與private適用來設定公有與私有成員的"修飾子"(modifier),修飾子是可以省略不寫的!如果類別的成員之前被省略public與private的話,表示這個成員只能在同一個package裡被存取;如果被冠上public的話,成員可以被任何一個package所存取。

菜鳥工程師的體脂肪

菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link

早上打完疫苗,趁現在還沒有什麼感覺趕快來寫文><
See you tomorrow~~


上一篇
DAY8-JAVA的類別(2)
下一篇
DAY10-JAVA的類別(4)-建構元
系列文
菜雞的JAVA日記30

尚未有邦友留言

立即登入留言