类与构造函数
class 定义、主/次构造函数、init 初始化块、属性声明
类与构造函数
Kotlin 的类声明极其简洁——构造函数、属性、初始化全在一行。
学完本章你将: 掌握 class 定义、主/次构造函数、init 块。
基本类
kotlin
class User(val name: String, var age: Int)
val user = User("小明", 25)
println(user.name) // 小明——自动生成 getter
user.age = 26 // var 有 setter
// user.name = "小红" // ❌ val 只有 getter
init 初始化块
kotlin
class User(val name: String, val age: Int) {
val displayName: String
init {
// 主构造函数执行后运行
displayName = if (name.isNotEmpty()) name else "匿名"
println("User 创建: $displayName")
}
}
次构造函数
kotlin
class User(val name: String, val age: Int) {
// 次构造函数必须委托主构造函数
constructor(name: String) : this(name, 0)
constructor() : this("匿名", 0)
}
val u1 = User("小明", 25)
val u2 = User("小红") // age=0
val u3 = User() // name="匿名", age=0
自定义 getter/setter
kotlin
class Rectangle(val width: Int, val height: Int) {
val area: Int
get() = width * height // 每次计算
var scale: Double = 1.0
set(value) {
if (value > 0) field = value // field = 幕后字段
}
}