Z
ZHANK
面向对象

类与构造函数

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 = 幕后字段
        }
}