Kotlin 面试题
目录

Kotlin 中可见性修饰符 (Visibility Modifiers) 有哪些?

· 约 3 分钟读完 · 第 69 / 200 章

推荐答案

在 Kotlin 中,可见性修饰符用于控制类、接口、对象、函数、属性等的可见范围。Kotlin 提供了四种可见性修饰符:

  1. public:默认的可见性修饰符,表示声明在任何地方都可以访问。
  2. private:表示声明只能在包含它的文件或类内部访问。
  3. protected:表示声明只能在包含它的类及其子类中访问。
  4. internal:表示声明在同一个模块(module)内可以访问。

本题详细解读

1. public

  • 默认修饰符:如果没有显式指定可见性修饰符,Kotlin 会默认使用 public。
  • 访问范围:public 修饰的声明可以在任何地方访问,无论是在同一个模块内还是不同的模块中。

2. private

  • 访问范围:private 修饰的声明只能在包含它的文件或类内部访问。
  • 文件级私有:在文件顶层声明的 private 成员只能在同一个文件内访问。
  • 类级私有:在类内部声明的 private 成员只能在类内部访问。

3. protected

  • 访问范围:protected 修饰的成员只能在包含它的类及其子类中访问。
  • 不能用于顶层声明:protected 不能用于文件顶层的声明,只能用于类内部的成员。

4. internal

  • 访问范围:internal 修饰的声明在同一个模块内可以访问。
  • 模块定义:模块是指一起编译的一组 Kotlin 文件,例如一个 IntelliJ IDEA 模块、一个 Maven 项目或一个 Gradle 项目。

总结

  • public:默认,任何地方可访问。
  • private:文件或类内部可访问。
  • protected:类及其子类可访问。
  • internal:同一模块内可访问。