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
相关推荐
平头哥技术团队8 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
乌萨奇也要立志学C++8 小时前
【洛谷】kmp算法
开发语言·算法
传奇开心果编程8 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
m0_380743878 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php
Draw Stars8 小时前
Git BASH安装教程
开发语言·git·bash
步行cgn8 小时前
YAML 的语法规则
spring boot·后端
vortex59 小时前
一文讲透 Zsh 与 Bash 的区别
开发语言·bash
千谦阙听9 小时前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
骇客野人9 小时前
SpringBoot电商系统用户注册、登录、留存及数据埋点设计与落地实施方案
java·spring boot·后端
IT_陈寒12 小时前
React的状态更新坑得我差点加班到天亮
前端·人工智能·后端