上一篇文章简单介绍了Kotlin的基本数据类型(Kotlin简介与基本数据类型),这一篇主要讲解Kotlin的类与对象,数组与区间,以及智能类型转换。
类与对象
类是一个抽象的概念,是具有某些特征的事物的概括,并不代指任意具体的事物,而对象是一个具体的概念,与类相对,用来描述某一种类的具体个体。
比如:“人” 是一个类,而 “一个三十五岁,身高一米八,慈眉善目的男工程师”则是这个类的一个对象。
在Kotlin中,类的写法是:
class <类名> {<成员>}
废话不多说,看代码:
open class 人(var 性格:String,var 长相:String,var 身高:String){
init {
println("创造了一个${this.javaClass.simpleName},性格:$性格,长相:$长相,身高:$身高")
}
}
class 美女(性格: String,长相: String,身高:String):人(性格,长相,身高)
class 帅哥(性格: String,长相: String,身高:String):人(性格,长相,身高)
fun main(args: Array<String>) {
val 女仆:美女 = 美女("暴怒","慈祥","一米三")
val 兽人:帅哥 = 帅哥("狂暴","惊悚","三米")
}
open修饰“人”这个类,表示这个类可以被继承,在Kotlin中,所有的类默认都是“final”的,不可以被继承。
一个类通常可以有很多个具体的对象,但一个对象本质上只能从属于一个类。
子类拥有父类一切特征,也可以定义自己的特征
所有的类最终继承自Any
关于“继承”,“父类”和“子类”的概念,与Java基础知识无异,在此不做赘述。
“人”包含三个属性:长相,性格,身高,Kotlin每个类有自带的init()方法,在新建类的时候会自动调用。