今天来说一下所增添的Kotlin学习内容。
首先说一下Kotlin的伴随(生)对象:
在Kotlin中,有一个关键字 companion,可以用来标记对象声明。
先来看一下代码:
例:
class Books(var name: String, val page: Int) {
companion object ComBooks{
val a : Int = 10
fun doNote() {
println("do note")
}
}
}
fun main(args: Array<String>) {
Books.ComBooks.doNote()
println("Book.a = ${
Books.ComBooks.a}")
println("-------------")
Books.doNote()
}
我们可以看出 伴随对象的调用不用创建包含伴随对象的实例,调用方式有两种,一种是类名.伴随对象.XX,另外一种方式是类名.XX。
二、Kotlin枚举
枚举类最基础的用法是实现一个类型安全的枚举,
枚举常量用逗号分隔,每个枚举常量都是一个对象。
例:
enum class Lang {
ENGLISH,
CHINESE;
}
enum class Season(val seasonName:String){
SPPING(“春天”),
SUMER(“夏天”),
AUTUMN(“秋天”),
WINTER(“冬天”)
}
三、Kotlin的sealed密封类
我们有一个具有特定数量的子类的类。最后,我们得到的结论是非常类似枚举的概念。所不同的是,在枚举中,我们每个类型只有一个对象;而在密封类中,同一个类可以拥有几个对象。
那怎么使用sealed密封类呢?
如下:
例:
sealed class Opertertion {
class Add(val value: Int) : Operation()
class Substract(val value: Int) : Operation()
class Multiply(val value: Int) : Operation()
class Divide(val value: Int) : Operation()
}
创建一个名为 Opertertion的密封类,它里面包含四种操作:加法,减法,乘法和除法。
四、Kotlin的面向对象 抽象类
抽象类:
写个抽象类,里面写抽象方法
abstract class Human(name:String){
abstract fun eat()
}
子类:
class Woman(name:String):Human(name){
// 把构造方法参数赋值给变量
var name :String =name;
override fun eat() {
Log.e("111",name+"爱吃鱼>>>");
}
}