1. 程式人生 > >【Java基礎】setter與getter方法

【Java基礎】setter與getter方法

1.set:在OO當中,變數最好都是private,防止被誤操作,那麼如何修改private的變數呢? 寫一個函式,專門針對private變數,每當想要修改這個變數的時候,就呼叫這個set函式。

2.get:既然這個變數是private,那麼外部無法獲取這個變數的值了,所以,再寫一個函式,專門用於返回這個變數的值,然後在類的外部,就可以隨意得到這個private的變數的值。
}
在其他類繼承這些私有資料的時候,更新時可以加一些判斷條件:

class Persion
{
    private String name;
    private String idStr;
    public Persion(){}
    //注意構造方法不需要加返回型別
    public Persion(String name, String idStr)
    {
        this.name = name;
        this.idStr = idStr;
    }
    //setter和getter方法  注意返回型別
    public void setName(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }
    public void setIdStr(String idStr)
    {
        idStr = idStr;
    }
    public String getIdStr()
    {
        return idStr;
    }
    //重寫equals方法,提供自定義的相等標準
    public boolean equals(Object obj)
    {
        //只有當obj是persion物件
        if(obj != null && obj instanceof Persion)
        {
            Persion persionObj = (Persion)obj;
            //並且當前物件的IdStr與obj物件的IdStr相等才可判斷兩者相等
            if (this.getIdStr().equals(persionObj.getIdStr()))
            {
                return true;
            }
        }
        return false;
    }
}
public class OverideEqualsRight
{
    public static void main(String[] args)
    {
        Persion p1 = new Persion("孫悟空", "123456");
        Persion p2 = new Persion("孫行者", "123456");
        Persion p3 = new Persion("孫悟飯", "1234");
        //p1和p2的IdStr相等所以輸出true
        System.out.println("p1是否等於p2:" + p1.equals(p2));
        //p1和p3的idStr不相等所以輸出false
        System.out.println("p1是否等於p3:" + p1.equals(p3));
    }
}

菜鳥一枚,繼續學習