Scala学习文档-访问修饰符

本文深入探讨了Scala中保护成员的访问控制规则及作用域限制,对比Java的访问特性,展示了Scala如何通过限定词强调成员的私有或保护性质,并通过实例演示了保护成员在不同范围内的可见性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在scala里,对保护成员的访问比Java严格。Scala中,保护成员只在定义了成员的类的子类中可以访问,而Java中,还允许在同一个包的其他类中访问。

 

package p1 {
  class FClass{
    protected def fun(){ println("myfunction") }
  }
  class SClass extends FClass{
    fun()//允许访问
  }
  class OtherC{
    fun()//错误 不允许访问
  }
}

 

保护的作用域

Scala里的访问修饰符可以通过限定词强调 private[x] 或 protected[x] 表示知道x的私有或保护。 x指代包、类、单例对象

例:

import bob.nav._
object Test12{
 def main(args:Array[String]):Unit={
    var c1 = new CCCC;//访问无效 超出了bob包
  }
} 
package bob{
  package nav{
     protected[bob] class CCCC{    //这个类对包含在bob包内的所有类和对象可见,在bob包之外的代码无法访问
        protected[nav] def cfun(){println("CCC1")} //这个方法对navigate包内的类和对象可见
        protected[this] val myspeed = 200;
          class MyC{
            private[nav] def myfun(){println("MyC")}
          }
          val c1 = new CCCC
          c1.myspeed //错误
    }
  }
}

 

转载于:https://www.cnblogs.com/gnivor/p/4074256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值