Scala内部类的运用

内部类:定义在类里面的类(内部类可以访问私有成员用它来操作类的私有成员,封闭性更好)

Scala 复制代码
class Student{
  var age=18
  def say():Unit={

  }
  class Book{
    val bookName: Any = "Scala程序设计"
    }
  }

object Test19 {
  def main(args: Array[String]): Unit = {
    val s1=new Student()
    val book1=new s1.Book()

    println(book1.bookName)
  }

}



输出:Scala程序设计
Scala 复制代码
class Car2 {
  private var speed=100
  val color="red"
  //
  class Engin(var maxSpeed:Int){
    def acc():Unit={
      speed+=10
      if (speed>maxSpeed){
        speed=maxSpeed
      }
      println("speed",speed)
    }
    def sub():Unit={
      speed-=10
    }
  }

  override def toString: String = {

    s"当前的速度是${speed}"
  }
}
object Test19_1{
  def main(args: Array[String]): Unit = {
    val c=new Car2()
    var engin=new c.Engin(maxSpeed=120)
    engin.acc()
    engin.acc()
    engin.acc()
    println(c)
    engin.sub()
    println(c)

  }

}

输出:(speed,110)
(speed,120)
(speed,120)
当前的速度是120
当前的速度是110
相关推荐
木易士心1 分钟前
从 MVP 到千万级并发:AI 在前后端开发中的差异化落地指南
前端·后端
哈基咪怎么可能是AI1 分钟前
😱【OpenClaw 源码解析 第3期】你的 AI 助手每次都「失忆」?学会这一招,让它记住你所有重要决策,效率直接翻倍!
人工智能·后端
小杍随笔6 分钟前
【Rust 语言编程知识与应用:自定义数据类型详解】
开发语言·后端·rust
波波0076 分钟前
每日一题:.NET 中的“表达式树是什么?
后端·.net
m0_5281744518 分钟前
C++中的代理模式变体
开发语言·c++·算法
皙然18 分钟前
深入理解 Java HashMap:从底层原理、源码设计到面试考点全解析
java·开发语言·面试
蜗牛会飞 202420 分钟前
大数据时代个人信息保护五大挑战
开发语言·华为云·个人开发·c5全栈
饕餮争锋30 分钟前
Baas(后端即服务)简介
后端
mjhcsp30 分钟前
C++ 折半搜索(Meet in the Middle):突破指数级复杂度的分治策略
开发语言·c++
mftang32 分钟前
C语言条件编译详解
c语言·开发语言