首页 > 编程语言 >【Java基础】setter与getter方法

【Java基础】setter与getter方法

时间:2022-12-02 20:31:47浏览次数:55  
标签:Java String idStr private name getter Persion public setter


没看懂为什么要用这两个方法,先记着吧。
在知乎上别人贴上的两个地址,留着以后写的多了,见识的多了,再次回头看这些的时候作为参考吧
​​​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));
}
}

菜鸟一枚,继续学习


标签:Java,String,idStr,private,name,getter,Persion,public,setter
From: https://blog.51cto.com/linmengmeng/5907443

相关文章

  • JAVA网络爬虫
    一、前置背景1、URL定义   统一资源标识符(UniformResourceIdentifier,URL)是采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。Java......
  • java语言——跨平台原理,jre,jdk
    day1Java是一种混合的编译运行方式:编译+解释(虚拟机)java的跨平台:在虚拟机中运行(jvm)jdk:jvm,核心类库,开发工具(开发环境)jre:Java的运行环境 ......
  • 【JAVA】基于SpringSecurity登录的详细教程
    不知道抽起哪根筋,花了一周的时间终于写了个基于springsecurity的登录的样例,4、5年前在学springboot时曾经按书上的例子却怎么也写不出来,算是了却自己的一桩心愿吧。当然,我不......
  • java常见的延迟队列实现方式
    参考如下:https://www.jianshu.com/p/977466020144/redission延迟队列的实现https://www.cnblogs.com/better-farther-world2099/articles/15216447.html......
  • Java常用类-Objec和Objects
    Java常用类之Object类基本介绍包地址:java.lang.ObjectClassObject是类Object结构的根。每个class都有Object作为超类。所有对象(包括数组)都继承这个类。构造方法pub......
  • java copyFile
     javacopyFile publicstaticvoidcopyFile(FileoldFile,FilenewFile)throwsIOException{FileInputStreamfis=newFileInputStream(oldFile);Fil......
  • java经典笔试题大全(50道含答案)
         java经典笔试题大全(50道含答案)    整理了一套常用的Java笔试题,选择题50道,简答题5道,试试你能做对多少题吧,含答案。选择题(共50题,每题1.5分,共75......
  • java利用正则表达式提取字符串中的整数和小数部分
    最近开发遇到一个新的东西,就是前端传过来一个字符串,需要将里面的数字提取出来,倒腾了一天,最后还是没有倒腾出来,最后还是借鉴大佬的方法。记录一下。首先是前端传来的字符串​......
  • 【Java编程思想】读书笔记(二)第六章---第十章
    Java编程思想(第四版)学习笔记第六章---第十章第六章:访问权限控制6.2Java访问权限修饰词第七章:复用类7.1组合语法7.2继承语法(extends)7.4.2名称屏蔽(重载)7.6prote......
  • 【Java编程思想】第四版课后习题笔记
    2.11练习10:编写一个程序:打印出从命令行获得的三个参数。为此,需要确定命令行数组中string的下标。书上的答案是:publicclassE10{ publicstaticvoidmain(String[]a......