本节将介绍 Kotlin 中的访问修饰符、伴生对象以及推荐单例的写法。

访问修饰符

在 Kotlin 中有四种访问符:

  • public
  • protected
  • private
  • internal

前面三种有 Java 基础的读者肯定都比较了解。public 具有最大的访问权限,可以访问任意路径的类、接口、成员变量;protected 表示子类可以访问它修饰的父类成员变量;private 表示访问权限仅限于类的内部;而 internal 是 Kotlin 特有的访问修饰符,表示一个模块内都能访问到这个对象。

模块是什么概念呢?我们在 Android Studio 中看下:

快速上手 Kotlin 开发系列之伴生对象

通过 File -> New -> New Module 创建出来的就是一个模块。

internal 修饰符更多用于项目中的结构化扩展以及模块化等场景。

伴生对象

在 Java 中我们经常使用类似示例中的工具类,可以直接通过 类名.方法名 来调用。

快速上手 Kotlin 开发系列之伴生对象

但是在 Kotlin 中是没有静态方法的,解决的办法有两种,一种方法就是前面提到过的使用 @JvmStatic 注解去注释它,第二种方法就是使用伴生对象的方式创建:

快速上手 Kotlin 开发系列之伴生对象

伴生对象一定要写在一个类的内部,作为这个类的一个伴生对象存在,伴生对象使用 companion object 两个关键字来声明。在 Kotlin 中就可以像 Java 调用静态方法一样,直接使用 类名.方法名 来使用。

快速上手 Kotlin 开发系列之伴生对象

而在 Java 中则需要通过静态变量 Companion 来调用,实际上,这个 Companion 是编译器帮我们生成的一个对象,用来访问内部的方法和变量。

快速上手 Kotlin 开发系列之伴生对象

单例

前面的文章中介绍过 Kotlin 中一种单例的写法,其实更推荐的写法是使用伴生对象和 object 关键字结合的方式,示例如下:

快速上手 Kotlin 开发系列之伴生对象

以上就是本节内容,欢迎大家关注~

快速上手 Kotlin 开发系列之伴生对象

相关文章: