内部类
概念:
定义在类或者对象内部的类称为内部类。
内部类的基本使用
定义格式:
class 类 { class 内部类 }
使用格式:
new 类的实例.内部类()
好处:
- 逻辑组织:引擎与 汽车紧密相关,它们都属于汽车的上下文。将它们作为内部类可以使代码更为整洁和逻辑清晰。
- 简化访问:内部类能够方便地访问外部类的私有成员,这样引擎类可以操作汽车的速度而不需要通过外部接口。
- 减少命名冲突:由于内部类的作用范围限制在外部类内,避免了名称冲突(在大型项目中,可能会有多个引擎类)。
示例代码:
object day29 {
/*
内部类
*/
//外部类
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)
}
}
运行结果:
12
内部对象
内部对象,就是定义在class内部的object。
定义格式:
class 类名 { object 对象名{ 属性;方法() }}
使用格式:
类名.对象名.属性名; 类名.对象名.方法名()
示例代码:
object day30 {
/*
内部类
1.格式:在一个类的里面,再写一个类
2.作用:组织逻辑更加严谨
*/
//外部类
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()
var en=new c1.Engin()
en.acc(10)
c1.run()
}
}