📜  Scala中的内部类(1)

📅  最后修改于: 2023-12-03 15:34:51.159000             🧑  作者: Mango

Scala中的内部类

Scala支持内部类的创建,内部类是类的一种嵌套方式,可以被外部类访问。在Scala中,内部类可以访问包含它的外部类的所有成员,包括私有成员。

创建内部类

要创建内部类,可以将一个类的定义包含在另一个类的定义中。以下是一个创建内部类的示例:

class Outer {
  class Inner {
    def show(): Unit = {
      println("This is Inner class")
    }
  }
}

上面的代码定义了一个外部类Outer和一个内部类InnerInner类可以访问Outer类中的所有成员。

实例化内部类

要在Scala中实例化内部类,需要先实例化外部类,然后创建内部类的实例对象。以下是创建内部类实例的示例:

val outerObj = new Outer
val innerObj = new outerObj.Inner
innerObj.show() // This is Inner class

上面的代码创建了一个Outer类的实例对象outerObj,然后创建了一个Inner类的实例对象innerObj。最后,通过innerObj对象调用了show方法。

使用内部类访问外部类的成员

内部类可以访问包含它的外部类的所有成员,包括私有成员。以下是一个使用内部类访问外部类私有成员的示例:

class Outer {
  private val x = 10

  class Inner {
    def show(): Unit = {
      println("Value of x is: " + x)
    }
  }
}

val outerObj = new Outer
val innerObj = new outerObj.Inner
innerObj.show() // Value of x is: 10

上面的代码定义了一个私有成员x,然后在内部类Inner中访问了它。

总结

Scala中的内部类是类的嵌套方式,它可以访问包含它的外部类的所有成员,包括私有成员。要创建内部类,请将一个类的定义包含在另一个类的定义中。要实例化内部类,请先实例化外部类,然后创建内部类的实例对象。