【Java基础】setter与getter方法

来源:互联网 发布:飞鸽网络打印 编辑:程序博客网 时间:2024/06/05 05:41

没看懂为什么要用这两个方法,先记着吧。
在知乎上别人贴上的两个地址,留着以后写的多了,见识的多了,再次回头看这些的时候作为参考吧
https://stackoverflow.com/questions/1568091/why-use-getters-and-setters-accessors
https://pragprog.com/articles/tell-dont-ask
别的博客下面评论看到的,貌似很有道理:
{
写在前面:set 或者 get ,有一定的用处,但实际使用时,还是要根据上下文,根据模块,来决定数据的修改和获取,不应当过于依赖set或get。

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));    }}

菜鸟一枚,继续学习

原创粉丝点击