(二十)内部类

39 阅读1分钟

(一)内部类的定义

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

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

  • 如图所示

屏幕截图 2025-11-19 113452.png

(二)内部类的基本使用

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

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

  • 代码如下
package level02
/*
* 内部类:在类的内部,写另一个类
* */
object class21 {
  class C1 {
    class B1 {
      def say(): Unit = {
        println("B1.....")
      }
    }
  }

  def main(args: Array[String]): Unit = {
    // 1. 创建一个C1的对象
    val c1 = new C1
    // 2. 创建一个B1的对象
    val b1 = new c1.B1
    b1.say()
  }
}
内部类的好处

(1)逻辑组织:引擎与 汽车紧密相关,它们都属于汽车的上下文。将它们作为内部类可以使代码更为整洁和逻辑清晰。

(2)简化访问:内部类能够方便地访问外部类的私有成员,这样引擎类可以操作汽车的速度而不需要通过外部接口。

(3)减少命名冲突:由于内部类的作用范围限制在外部类内,避免了名称冲突(在大型项目中,可能会有多个引擎类)。


package level02
/*
* 内部类:在类的内部,写另一个类
* 作用:整理代码,访问私有成员
* */
object class22 {
  class C1 {
    // 私有成员,不能在类的外部修改
    private var score: Int = 85

    class B1 {
      def addScore(s: Int): Unit = {
        score += s
      }
      def say(): Unit = {
        println(s"B1...${score}")
      }
    }
  }

  def main(args: Array[String]): Unit = {
    // 1. 创建一个C1的对象
    val c1 = new C1()
    // 2. 创建一个B1的对象
    val b1 = new c1.B1()
    b1.addScore(10)
    b1.say()
  }
}