Kotlin 学习笔记(六)—— Kotlin类与对象之类和继承
Kotlin学习笔记系列教程
Kotlin 学习笔记(一)—— 概述、学习曲线、开发工具、参考资料
Kotlin 学习笔记(二)—— 基础语法
Kotlin 学习笔记(三)—— 习惯用法
Kotlin 学习笔记(四)—— Kotlin基础之基本类型
Kotlin 学习笔记(五)—— Kotlin基础之控制流、返回与跳转、 包与导入
类
Kotlin中使用关键字class声明类
class Invoice {
}
类声明由类名、类头(指定其类型参数、主构造函数等)以及花括号包围的类体构成。类头和类体都是可选的;如果一个类没有类体,可以省略花括号。
class Empty
构造函数
在Kotlin中的一个类可以有一个主构造函数和一个或多个次构造函数,主构造函数是类头的一部分:它跟在类名(和可选的类型参数)后。
class Person constructor(firstName: String) {
}
如果主构造函数没有任何注解或者可见性修饰符,可以省略这个constructor关键字。
class Person(firstName: String) {
}
主构造函数不能包含任何的代码。初始化代码可以放到以init关键字作为前缀的初始化块(initializer blocks)中。
在实例初始化期间,初始化块按照它们出现在类体重的顺序执行,与属性初始化器交织在一起:
class Kotlin1(fileName: String){
val time = fileName
init {
var size = time.length
}
}
注意:主构造的参数可以在初始化块中使用,它们也可以在类体内声明的属性初始化器中使用:
val time = fileName
事实上,声明属性以及从主构造函数初始化属性,Kotlin有简洁的语法:
class Kotlin1(fileName: String,val size: Int,var age: Int){
//....
}
与普通属性一样,主构造函数中声明的属性可以是可变的(var)或只读的(val)。
如果构造函数有注解或可见性修饰符,这个constructor关键词是必须的,并且这些修饰符在它的前面:
class Customer public @Inject constructor(name: String)