Scala的访问权限

38 阅读1分钟

Scala的访问权限概述

/* 访问权限控制 1.公开的。不写修饰符

2.protected,保护的 在类的外部不能访问; 在子类中访问

3.private,私有的 在类的外部不能访问 在子类中不能访问 在伴生对象中可以访问

4.private[this] 只能被当前对象中使用 在类的内部使用 */

object Class13 {
 object Person {
   def test(p:Person):Unit={
     //private在伴生对象中可以访问
     println(p.password)
     // private[this]在伴生对象中不能访问的
     //println(p.money)
   }
 }
 class Person() {
   var name:String="tianyeshuai";//公开的
   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)
 }
}