在scala里,类的成员属性的修饰符,可能有以下几种情况吧:
情况一:使用var修饰
在类里,可以获取,修改
类的对象实例,可以获取,修改
情况二:使用val修饰
在类里,只能获取,不能修改
在对象里,只能获取,不能修改
情况三:使用private var 修饰
在类里,可以获取,修改
但是,
对象,不能获取,修改了
情况四:使用private val修饰
在类里,只能获取,不能修改
但是,
对象,不能获取,修改了
情况五:使用private[this] var 修饰
在类里,可以获取,修改
此类成员属性,属于对象级别的属性,只能在当前实例里,用;不能通过传递其他对象来使用此属性
情况六:使用private[this] val修饰
在类里,只能获取,不能修改
此类成员属性,属于对象级别的属性,只能在当前实例里,用;不能通过传递其他对象来使用此属性
总之:
A、 看见var修饰符,说明,类和对象里, 此属性可以获取,修改
B、 看见val修饰符,说明,在类和对象里,此属性,只能获取,不能修改,就是不能重新赋值了
C、 看见private var, private val 修饰符,是类级别的私有,是类私有;只能在类的内部使用,对象不能使用;也就是说说,将成员属性的访问权限,限制在类的内部,对象不能访问了,更别提修改了。
D、看见类似于private[this]的修饰符,说明,对成员属性,进行了更加严格的限制,只能当前实例对象里使用,不能通过其他对象传递过来使用。