美文网首页Kotlin专题KotlinKotlin编程
Kotlin学习之访问修饰符

Kotlin学习之访问修饰符

作者: 程序员丶星霖 | 来源:发表于2017-11-27 08:28 被阅读170次

Kotlin学习之访问修饰符

类、对象、接口、构造函数、方法、属性和它们的setter都可以有访问修饰符。

在Kotlin中有这四个可见性修饰符:

  • private
  • protected
  • internal
  • public

如果没有显式指定修饰符的话,默认可见性是public,如果需要其他任何访问修饰符都是在缩小访问范围,真正的起到了“访问控制”。

一、包

函数、属性和类、对象和接口可以在顶层声明,即直接在包内声明:

// 文件名:example.kt
package foo

fun baz() {}
class Bar {}

注意:

  • 如果不指定任何访问修饰符,默认为public,意味着随处可见此声明;
  • 如果声明为private,只会在声明它的文件内可见;
  • 声明为internal,会在相同模块内随处可见;
  • protected不适用于顶声明。
  • 要使用另一个包内可见的顶层声明,仍需将其导入进来。

二、类和接口

对于类内部声明的成员:

  • private,意味着只在此类内部可见;
  • protected,和private一样,在子类中可见;
  • internal,能见到类声明的本模块内的任何客户端都可见其internal成员;
  • public,能见到类声明的任何客户端都可见其public成员。

注意:

  • Kotlin中外部类不能访问内部类的private成员;
  • 如果覆盖一个protected成员并且没有显式指定其可见性,该成员还是protected可见性。

三、构造函数和局部声明

要指定一个类的主构造函数的可见性,使用如下语法

class C private constructor(a: Int) { …… }

默认情况下,所有构造函数都是public,在类可见的地方它就可见。

局部变量、函数和类不能有访问修饰符。

四、模块

访问修饰符internal意味着该成员只在相同模块内可见。模块是一个“大于包而小于项目”的概念。

一个模块就是编译在一起的一套Kotlin文件:

  • 一个IntelliJ IDEA模块;
  • 一个Maven项目;
  • 一个Gradle源集;
  • 一次<kotlinc> Ant任务执行所编译的一套文件。

学海无涯苦作舟

我的公众号.jpg

相关文章

网友评论

    本文标题:Kotlin学习之访问修饰符

    本文链接:https://www.haomeiwen.com/subject/tgekbxtx.html