Dream------scala--scala内部类实战

Dream------scala--scala内部类实战

 

  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

 

 

 

 

 

 

 

 

  

 

posted @ 2015-08-18 20:03  拼命@三郎  阅读(249)  评论(0编辑  收藏  举报