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