getter 和 setter
var <propertyName>[: <PropertyType>] [= <property_initializer>][<getter>][<setter>]
var lastName: String = "zhang"get() = field.toUpperCase() // 将变量赋值后转换为大写set
主构造函数
在 Kotlin 中的一个类可以有一个主构造函数以及一个或多个次构造函数。
主构造函数是类头的一部分: 它跟在类名( 与可选的类型参数) 后。
class Person constructor(firstName: String) { ... }
主构造函数不能包含任何的代码。 初始化的代码可以放到以 init 关键字作为前缀的初始化块( initializer blocks) 中。
次构造函数
class Person {constructor(parent: Person) {parent.children.add(this)}}
抽象类
abstract class Derived : Base() {override abstract fun f()}
嵌套类
内部类
内部类使用 inner 关键字来表示。
class Outer {private val bar: Int = 1var v = "成员属性"/**嵌套内部类**/inner class Inner {fun foo() = bar // 访问外部类成员fun innerTest() {var o = this@Outer //获取外部类的成员变量println("内部类可以引用外部类的成员,例如:" + o.v)}}}
类的修饰符
- abstract // 抽象类
- final // 类不可继承,默认属性
- enum // 枚举类
- open // 类可继承,类默认是final的
- annotation // 注解类
- private // 仅在同一个文件中可见
- protected // 同一个文件中或子类可见
- public // 所有调用的地方都可见
- internal // 同一个模块中可见
对象的声明与创建
var user : User? = User("Name",100)
