getter 和 setter

  1. var <propertyName>[: <PropertyType>] [= <property_initializer>]
  2. [<getter>]
  3. [<setter>]
  1. var lastName: String = "zhang"
  2. get() = field.toUpperCase() // 将变量赋值后转换为大写
  3. set

主构造函数

在 Kotlin 中的一个类可以有一个主构造函数以及一个或多个次构造函数。

主构造函数是类头的一部分: 它跟在类名( 与可选的类型参数) 后。

  1. class Person constructor(firstName: String) { ... }

主构造函数不能包含任何的代码。 初始化的代码可以放到以 init 关键字作为前缀的初始化块( initializer blocks) 中。

次构造函数

  1. class Person {
  2. constructor(parent: Person) {
  3. parent.children.add(this)
  4. }
  5. }

抽象类

  1. abstract class Derived : Base() {
  2. override abstract fun f()
  3. }

嵌套类

内部类

内部类使用 inner 关键字来表示。

  1. class Outer {
  2. private val bar: Int = 1
  3. var v = "成员属性"
  4. /**嵌套内部类**/
  5. inner class Inner {
  6. fun foo() = bar // 访问外部类成员
  7. fun innerTest() {
  8. var o = this@Outer //获取外部类的成员变量
  9. println("内部类可以引用外部类的成员,例如:" + o.v)
  10. }
  11. }
  12. }

类的修饰符

  • abstract // 抽象类
  • final // 类不可继承,默认属性
  • enum // 枚举类
  • open // 类可继承,类默认是final的
  • annotation // 注解类
  • private // 仅在同一个文件中可见
  • protected // 同一个文件中或子类可见
  • public // 所有调用的地方都可见
  • internal // 同一个模块中可见

对象的声明与创建

  1. var user : User? = User("Name",100)