Z
ZHANK
面向对象

可见性修饰符

public/internal/protected/private、模块级 internal

可见性修饰符

Kotlin 的可见性默认是 public——还有个 Java 没有的 internal(模块内可见)。

学完本章你将: 掌握 public/internal/protected/private、模块概念。


四种修饰符

kotlin
// public(默认)——随处可见
val publicVar = 1

// internal——同模块内可见
internal val internalVar = 2

// private——同文件内可见
private val privateVar = 3

// protected——同 private + 子类可见(不能用于顶层)
open class Parent {
    protected val protectedVar = 4
}

类成员可见性

kotlin
open class Outer {
    public val a = 1       // 所有地方
    internal val b = 2     // 同模块
    protected open val c = 3  // 本类 + 子类
    private val d = 4      // 仅本类
}

class Sub : Outer() {
    override val c = 30    // ✅ protected 在子类可见
    // val x = d           // ❌ private 不可见
}

模块的概念

模块 = 一个 IDEA 模块 / Maven 项目 / Gradle 源码集
       → 编译在一起的一组 Kotlin 文件

internal = 在这个模块内任意访问