scala 作用域保护

package Demo001

package boboka{//外部包

  import Demo001.boboka.dagejiao.valve


  package dagejiao{//内部包

    private[boboka] class valve{//①这个valve除了对boboka中的包可见 对其他所有的类都是private

     def V{ println("hello world")}
     protected[dagejiao] def show(){println("hello")}//①②这个方法除了对dagejiao这个包可见 其他的类均要继承t1类才能使用show方法

      private[this] var data=2//③this关键字控制更加严格,只有该类,和内部类内部方法可以访问,且只能直接调用而不能通过实例调用
      private[this] def data2  {println("data真好玩")}//④

      val ss=new inner
      ss.csgo//⑤可以访问csgo

        class inner(){
          val vv=new valve//无法通过此类的实例调用data和data2方法 只能直接使用
//          vv.data2只能直接调用而不能通过实例调用
//          vv.data只能直接调用而不能通过实例调用
          data//③直接使用
          data2//④直接使用
          private[valve] var csgo="shoot"//⑤此私有csgo对valve可见
          private[this] def Csgo {println("csgo 真好玩")}//这个就只能在此类下访问 valve无法访问
      }
    }

                      class c{//①②在dagejiao这个内部包内 可以访问v和show
                        val cc=new valve
                        cc.V
                        cc.show()
                      }

  }

                      class a {//① 在boboka外部包内  可以访问公共的V
                        val b=new valve
                        b.V

  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值