为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Java中人们都将属性设为私有,然后写setter/getter?

为什么Java中人们都将属性设为私有,然后写setter/getter?

青春有我 2018-10-09 10:10:30
很多人推崇kotlin,认为语法简介、优雅,再也不用写冗长的setter/getter方法了。我个人目前也在使用kotlin,但我有个问题,就是Java中如果不将属性设为private, 而是public,那么同样不需要写setter/getter方法啊?kotlin的代码中,比如:class ProductInfo {    var productId:String?=null     var productName:String?=null     var productPrice:BigDecimal?=null     var productStock:Int?=null     var productDescription:String?=null     var productIcon:String?=null     var productStatus:Int?=null     var categoryType:Int?=null     var createTime:Date?=null     var updateTime:Date?=null}也并不是将属性设为私有啊。<font color="red"> 很多人都说使用setter/getter是因为面向对象的封装特性,安全之类的,这个我认同,但是为什么kotlin里面就不需要setter/getter呢? </font>
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

因为它的编译器帮你自动生成getter/setter

查看完整回答
反对 回复 2018-10-31
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

setter/getter 统一了这个类的变量修改\获取值的口子,更加方便你对这个类的控制。

比如这个类的某个变量我不想让你去修改它,那我就把set方法删了就行,

还比如我想要限制set方法设置的值的范围,get方法获取值的时候,返回一个比较特殊的值,

这些需求可以很方便的通过setter/getter去设置,减小对源代码的修改,而且扩展性更好。


查看完整回答
反对 回复 2018-10-31
  • 2 回答
  • 0 关注
  • 1036 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信