scala的内部类跟java的内部类有很大的不同,java中的内部类实际上是从属于外部类,而scala的内部类是从属于外部类对象的(及外部类实例)。
class Outer(val name:String){ outer => class Inner(val name:String){ def foo(b:Inner) = println( "Outer : " +outer.name + "Inner :" +b.name ) } } object OOPInScala{ def main(args : Array[String]){ val outer1 = new Outer("Hadoop") val outer2 = new Outer("Spark") val inner1 = new outer1.Inner("java") val inner2 = new outer2.Inner("scala") //这里inner1的foo不能引用inner2,inner2也不能引用inner1 //也就是说inner1是从属于inner1这个实例的。因为你new的时候用的是outer1,并且赋值给了inner1. inner1.foo(inner1) inner2.foo(inner2) } }
相关来源:
DT大数据梦工厂,微信公众号是:DT_Spark,每天都会有大数据实战视频发布,请您持续学习。
相关资料:
scala深入浅出实战经典完整视频、PPT、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码45e2
时间: 2024-10-13 00:26:28