每天学一点Scala之class 成员属性 修饰符

简介:

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]的修饰符,说明,对成员属性,进行了更加严格的限制,只能当前实例对象里使用,不能通过其他对象传递过来使用。

 

wKiom1mX5m_AUlAdAADNVGwrtqA012.png

wKioL1mX5kCThBGPAAFa6Iso1bk112.png

wKiom1mX5gbCWPyhAAA25BiJS7Q962.png-wh_50











本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1957611 ,如需转载请自行联系原作者











相关文章
Scala类中的属性
Scala面向对象程序设计 类的属性
|
编译器 Scala
Scala学习笔记(七) Sealed Class 和 Enumeration
Scala学习笔记(七) Sealed Class 和 Enumeration
206 0
|
Java Scala
scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步
继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小一部分): 1. 一堆的setter/getter方法,没有c#中的property属性概念 2. 方法的参数值,不能设置缺省值 3. 不定个数参数的写法太单一 ... 然后java的拥护者讲出一堆大道理,说这样设计是如何如何有道理,各种洗脑,时间长了,也就被迫习惯了。
1262 0
|
Java Scala
Scala入门到精通——第十四节 Case Class与模式匹配(一)
本节主要内容 模式匹配入门 Case Class简介 Case Class进阶 1. 模式匹配入门 在java语言中存在switch语句,例如: //下面的代码演示了java中switch语句的使用 public class SwitchDemo { public static void main(String[] args) { for(i
3096 0
|
SQL 分布式计算 Scala
Scala入门到精通——第十五节 Case Class与模式匹配(二)
本节主要内容 模式匹配的类型 for控制结构中的模式匹配 option类型模式匹配 1. 模式的类型 1 常量模式 object ConstantPattern{ def main(args: Array[String]): Unit = { //注意,下面定义的是一个函数 //函数的返回值利用的是模式匹配后的结果作为其返回值 //还
2890 0