今天学习了scala中的路径依赖,来看一下实战代码
class Outer{
private val x = 10
class Inner{
private val y = x +10
}
}
这里定义了一个外部类Outer,Outer里定义了私有的成员x。同时定义了内部类Inner,内部类里定义了私有成员y。
在这里,内部类Inner可以访问外部类的私有成员x,而外部类不能访问内部类Inner的私有成员y。
继续看这段代码:
object test52{
def main(args:Array[String]){
val outer = new Outer
val inner = new outer.Inner
val inner2 : outer.Inner = new outer.Inner
val o1 = new Outer
val o2 = new Outer
// val i : o2.Inner = new o1.Inner
首先,实例化外部类outer,inner,接着,实例化内部类inner2,在这里我们可以看到,inner2的类型为outer.Inner,说呢,同一个外部类的内部类实例的类型是相同的。
接着往下看,实例化外部类成员o1,o2,接着,让一个类型为o2.Inner的i实例化为o1.Inner的对像,这里编译器会报错,因为,o2.Inner和o1.Inner是两个不同的外部类,它们的内部类的类型也不会相同。
这就是scala中的路径依赖的作用。
分享下更多的scala资源吧:
百度云盘:http://pan.baidu.com/s/1gd7133t
微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416
360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)
信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
关注微信账号,获取更多关于scala学习内容
浙公网安备 33010602011771号