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
}
}
scala 作用域保护
最新推荐文章于 2024-03-17 19:31:55 发布