Java里面取值(get)跟赋值(set)有什么区别

云网络9个月前 (08-28)建站教程122

区别有:1. 取值(get):用于读取对象的属性值,不改变对象的状态;2. 赋值(set):用于修改对象的属性值,可能改变对象的状态;3. 访问控制:通过get和set方法,可以实现对属性的封装和保护;4. 扩展性:get和set方法可以加入额外的逻辑,如验证和监听。

1. 取值(get)

  • 读取属性:get方法用于读取对象的属性值。

  • 不改变状态:获取属性值不会改变对象的状态。

  • 返回类型:get方法的返回类型与属性类型相同。

  • 例子public int getAge() { return age; },用于获取age属性。

2. 赋值(set)

  • 修改属性:set方法用于修改对象的属性值。

  • 可能改变状态:赋值操作可能会改变对象的状态。

  • 无返回值:set方法通常没有返回值。

  • 例子public void setAge(int age) { this.age = age; },用于设置age属性。

3. 访问控制

通过get和set方法,可以控制外部对属性的访问和修改,提供封装。

4. 扩展性

在get和set方法中,可以加入额外的逻辑,如验证属性值的合法性或添加监听器。


延伸阅读

Java中直接赋值和构造方法赋值的区别

在Java中,直接赋值只会产生一个实例化对象,并且可以自动保存到对象池中,以实现对象的复用;而构造方法赋值会产生两个实例化的对象,并且不会自动入池,无法实现对象的重用。

1.直接赋值:先在字符串池中寻找是否存在和这个值相同的String对象。如果没有,则在字符串池中创建这个对象,然后返回这个对象的引用;若寻找成功,则直接返回这个引用。

2.构造方法赋值:堆允许程序在运行时动态地申请某个大小的内存空间。虽然两个对象指向同一块内容,但是他们本身是两个不同对象,只是地址相同。

直接赋值只会开辟一块堆内存空间,并且该字符串对象可以自动保存在对象池中以供下次使用;而如果使用构造方法赋值,就会开辟两块堆内存空间,并且其中一块堆内存将成为垃圾空间,此外也会对字符串共享产生问题。


相关文章

网站经常显示Service Unavailable或图片不显示

如果你的网站常出现:1.图片经常显示 X 号,不显示图片或显示部份图片,刷新几次又好了。2.网站经常显示Service Unavailable,刷新几次又好了。这个是由于你的空间IIS用完引起,每一个...

ftp常见错误问题集锦

1.530 Not logged in   答:账号密码错误、ftp为关闭状态。修改重置ftp密码。并在主机管理--读写权限--检查ftp是否开启状态2.530 Not logge...

php常用开发工具有哪些

php常用开发工具有:1.PhpStorm;2.EditPlus;3.PHPDesigner;4.SublimeText;5.VSCode;6.ZendStudio;7.Norepad++;8.PHP...

网站域名被恶意泛解析该如何解决

网站域名被恶意泛解析生成大量的违规站点网页,导致网页被百度标注违规站点,导致网站流量下降、网站被降权或者被k站。一、什么是域名恶意泛解析?域名泛解析就是开启了带*的子域解析服务,大量的子域名泛滥。比如...

遇到http500“服务器内部错误”怎么办?

出现500错误的原因是很多的,一般来说,如果程序出错,那么在浏览器内会返回给用户一个友好的错误提示,统一称之为服务器500错误。解决的方法就是您必须在http中能够正确的获得错误信息,方法为:请打开浏...

PHP虚拟主机是什么?

PHP虚拟主机指的就是可以使用PHP变成语言来开发和运行的虚拟主机。虚拟主机是通过一台物理服务器或者云服务器虚拟出来的云资源,它的程序语言受母机的限制,所以选购虚拟主机需要根据自己的开发语言来选择。一...