每天学一点Scala之class 成员属性 修饰符
2017-08-19 15:20
267 查看
在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]的修饰符,说明,对成员属性,进行了更加严格的限制,只能当前实例对象里使用,不能通过其他对象传递过来使用。
情况一:使用var修饰
在类里,可以获取,修改
类的对象实例,可以获取,修改
情况二:使用val修饰
在类里,只能获取,不能修改
在对象里,只能获取,不能修改
情况三:使用private var 修饰
在类里,可以获取,修改
但是,
对象,不能获取,修改了
情况四:使用private val修饰
在类里,只能获取,不能修改
但是,
对象,不能获取,修改了
情况五:使用private[this] var 修饰
在类里,可以获取,修改
此类成员属性,属于对象级别的属性,只能在当前实例里,用;不能通过传递其他对象来使用此属性
情况六:使用private[this] val修饰
在类里,只能获取,不能修改
此类成员属性,属于对象级别的属性,只能在当前实例里,用;不能通过传递其他对象来使用此属性
总之:
A、 看见var修饰符,说明,类和对象里, 此属性可以获取,修改
B、 看见val修饰符,说明,在类和对象里,此属性,只能获取,不能修改,就是不能重新赋值了
C、 看见private var, private val 修饰符,是类级别的私有,是类私有;只能在类的内部使用,对象不能使用;也就是说说,将成员属性的访问权限,限制在类的内部,对象不能访问了,更别提修改了。
D、看见类似于private[this]的修饰符,说明,对成员属性,进行了更加严格的限制,只能当前实例对象里使用,不能通过其他对象传递过来使用。
相关文章推荐
- 每天学一点Scala之class 构造器
- 每天学一点Scala之class
- 每天学一点Scala之type
- 每天学习一点Scala03_Scala数据类型
- 每天学一点Scala之type
- 每天学一点Scala之Try
- 每天学一点Scala之 伴生类和伴生对象
- 每天学一点flash(65)cs4的旋转属性练习
- Scala学习之类和属性篇(六):对象私有成员变量
- 每天学一点Scala之 高阶函数 flatten
- 每天学一点Scala之 Currying函数
- 每天学一点Scala之implict 隐式参数
- 每天学一点flash(65)cs4的旋转属性练习
- 每天学习一点Scala01_函数式编程
- 每天学一点Scala之apply方法
- java类成员属性修饰符default, public, private, protected
- struts2与spring集成时,关于class属性及成员bean自动注入的问题
- 每天学一点Scala之Option[A]
- 每天学习一点Scala04_变量
- 每天学一点Scala之内部类