# kotlin 类与对象
1 2 3
| class Bury() { fun myPrint() { print("Hello world") } }
|
Koltin 中的类可以有一个 主构造器,以及一个或多个次构造器,主构造器是类头部的一部分,位于类名称之后:
1
| class Person constructor(firstName: String) {}
|
如果主构造器没有任何注解,也没有任何可见度修饰符,那么 constructor 关键字可以省略。
1 2
| class Person(firstName: String) { }
|
getter 和 setter 都是可选如果属性类型可以从初始化语句或者类的成员函数中推断出来,那就可以省去类型,val 不允许设置 setter 函数,因为它是只读的。
1 2 3 4 5
| var allByDefault: Int? var initialized = 1 val simple: Int? val inferredType = 1
|
getter 和 setter 属性声明的完整语法:
1 2 3 4
| var <propertyName>[: <PropertyType>] [= <property_initializer>] [<getter>] [<setter>]
|
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Person {
var lastName: String = "zhang" get() = field.toUpperCase() set
var no: Int = 100 get() = field set(value) { if (value < 10) { field = value } else { field = -1 } }
var heiht: Float = 145.4f private set }
fun main(args: Array<String>) { var person: Person = Person() person.lastName = "wang" println("lastName:${person.lastName}") person.no = 9 println("no:${person.no}") person.no = 20 println("no:${person.no}") }
|