kotlin基础知识

1.1 get和set的处理

格式上和 Java 有一些区别:

  • getter / setter 函数有了专门的关键字 get 和 set

  • getter / setter 函数位于 var 所声明的变量下面

  • setter 函数参数是 value

    除此之外还多了一个叫 field 的东西。这个东西叫做「Backing Field」。这个 field 对编码的人不可见,但会自动应用于 getter 和 setter,因此它被命名为「Backing Field」。在 Kotlin 里,它相当于每一个 var 内部的一个变量。

1.2 Constants in Kotlin

1.1.1 静态常量

  • Companion object

Kotlin中没有static关键字,如果你想在类中声明静态方法或属性,就要把他们放在companion object(伴生对象)中。

class Constants { companion object { val FOO = “foo” } }

  • const val

    使用条件

  1. 作为顶层属性、companion object属性,或object属性
  2. 只可修饰String或原始类型
  3. 不能自定义getter

class Constants { companion object { const val FOO = “foo” } } // 静态常量

  • JvmField

把上面const去掉,给FOO加上JvmField注解 生成的Java代码原文没给

class Constants { companion object { @JvmField val FOO = Foo() //Foo()是为了说明不限定于原始类型 } }

1.1.2 Top-Level

如果一个类只是用来装载常量,那我们可以放心大胆地“丢弃这个类和companion object”,使用Kotlin的文件级属性(顶层属性) 直接在kt文件中
复制代码

const val FOO = “foo”

生成对应的Java代码(或许就是你在使用Java时会写上的代码)

public final class ConstantsKt {
   @NotNull
   public static final String FOO = "foo";
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享