scala的访问权限

31 阅读1分钟

1.Scala的访问权限概述

  • Scala中的属性、方法可以通过访问控制符来设置不同的访问权限。不同的访问控制符可以决定是否可以被外部类访问。

2.访问权限控制

1.公开的,不写修饰符

2.protected,保护的

  • 在类的外部不能访问
  • 在子类中访问

3.private,私有的

  • 在类的外部不能访问
  • 在子类中不能访问
  • 在伴生对象中可以访问

4.private[this]

  • 只能被当前对象使用
  • 在类的内部使用
/*
*
*访问权限控制
* 1.公开的,不写修饰符
* 2.protected,保护的
*      在类的外部不能访问;
*      在子类中访问。
* 3.private,私有的
*      在类的外部不能访问
*      在子类中不能访问
*      在伴生对象中可以访问
*4.private[this]
*      只能被当前对象使用
*      在类的内部使用
*
 */


object Class22 {

  object Person {
    def test(p:Person): Unit = {
      //private在伴生对象中可以访问
      println(p.password)
      //private[this]在伴生对象中不能访问
      //println(p.money)
    }
  }
  class Person() {
    var name:String = "xx";  //公开的

    protected var birthday:String = "2000-10-10"
    private var password:String="123456"
    private[this] var money:Int=100
    def t():Unit = {
      println(money)
    }
  }

  class Son extends Person(){
    //2.protected在子类中可访问
    println(birthday)
    //3.private在子类中不能访问的
    //println(password)
  }


    def main(args: Array[String]): Unit = {
      val p1 = new Person()
      println(p1.name)
      //2.protected在累的外部无法访问
      //println(p1.birthday)
      new Son()
      //3.在伴生对象中访问  类的私有成员
      Person.test(p1)

    }
  }