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 = 1
var 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)