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

很多人推崇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>


青春有我
浏览 1037回答 2
2回答

千巷猫影

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

慕莱坞森

setter/getter 统一了这个类的变量修改\获取值的口子,更加方便你对这个类的控制。比如这个类的某个变量我不想让你去修改它,那我就把set方法删了就行,还比如我想要限制set方法设置的值的范围,get方法获取值的时候,返回一个比较特殊的值,这些需求可以很方便的通过setter/getter去设置,减小对源代码的修改,而且扩展性更好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java