【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)); }}
菜鸟一枚,继续学习
阅读全文
0 0
- 【Java基础】setter与getter方法
- 生成getter与setter方法
- iOS setter与getter方法
- iOS setter 与 getter方法
- JAVA中的setter//getter()方法
- java封装private成员变量setter与getter方法测试
- 生成getter与setter的方法
- iOS开发之getter与setter方法
- OC - @property与setter,getter方法
- java中的setter()、getter()方法用法
- getter和setter方法
- setter-getter方法
- setter和getter方法
- setter和getter方法
- swift getter setter方法
- setter getter方法
- getter和setter方法
- getter和setter方法
- Windows引导修复
- IBM 联想 DELL HP服务器自动关机|解决办法整理
- Image Super Resolution Using Conventional Neural Network (SRCNN)
- Cluster Mode 概述
- redis源码分析(三)redis命令学习总结—string字符串
- 【Java基础】setter与getter方法
- nginx配置的大坑proxyPass
- ios11 适配
- 计算机类SCI杂志排名
- 1001. 害死人不偿命的(3n+1)猜想 (15分)-浙大PAT乙级真题java实现
- 设计模式——模板方法模式
- Delete and Earn
- 加快app的启动速度
- leetcode 9 Palindrome Number