scala 內部類

scala內部類不一樣於java內部類, java類中內部類從屬於外部類,而scala的內部類從屬於外部類對象java

 

/**
* 第一種方式
* 在內部類經過 外部類.this.成員名稱 訪問外部類成員
*/

class Outer1(val name : String){
  outer2 => class Inner(val name : String){
def info(b: Inner)= println("Outer : " + outer2.name + ",inner : " + b.name)
}
}
/**
* 第二種方式
* 在內部類經過【外部類別名】 訪問外部類成員
*/
class Outer1(val name : String){
outer2 => class Inner(val name : String){
def info(b: Inner)= println("Outer : " + outer2.name + ",inner : " + b.name)
}
}
object OutPutResult{
def main(args: Array[String]): Unit ={
val outer = new Outer("spark")
val outer1 = new Outer1("hadoop")
val inner = new outer.Inner("scala")
val inner1 = new outer1.Inner("java")
//這裏inner1的foo不能引用inner2,inner2也不能引用inner1
//也就是說inner1是從屬於inner1這個實例的。由於你new的時候用的是outer1,而且賦值給了inner1.
    inner.info    inner1.info(inner1)  }}
相關文章
相關標籤/搜索