scala内部类

37 阅读1分钟

(一)内部类的定义

(二)内部类的基本使用

(三)内部类的使用案例

(四)内部对象

(五)匿名类

(一)内部类的定义

定义在类或者对象内部的类称为内部类。

在类的内部有:属性,方法,类。

package level02

/*
内部类
*/
object O06 {

  // 外部类
  class Car() {
    var wheel: Int = 3

    def run(): Unit = {
      println("run.....")
    }

    // 内部类
    class Engin() {
      val power: Int = 12
    }
  }

  def main(args: Array[String]): Unit = {
    val c1 = new Car();
    var eng = new c1.Engin()
    println(eng.power)
  }
}

(二)内部类的基本使用

定义格式: class 类 {  class 内部类 }

使用格式: new 类的实例.内部类()

package level02

/*
内部类
1. 格式:在一个类的里面,再写一个类
2. 作用:组织逻辑更加严谨;避免命名的冲突
*/
object O07 {

  // 外部类
  class Car() {
    var wheel: Int = 3
    // 私有成员
    private var speed: Int = 0

    def run(): Unit = {
      println(s"当前速度为:${speed},run....")
    }

    // 内部类
    class Engin() {
      def acc(increment: Int): Unit = {
        speed += increment
      }
    }
    class AutoPark(){}
  }

  def main(args: Array[String]): Unit = {
    val c1 = new Car();
    // c1.speed // 私有属性不能访问
    c1.run()
    val en = new c1.Engin()
    en.acc(10)
    c1.run()
    
  }
}