Kotlin进阶学习

1、异常处理

try {

} catch (e: Exception) {

}

2、递归
阶乘

fun fact(num: BigInteger): BigInteger {
    if (num == BigInteger.ONE) {
        return BigInteger.ONE
    } else {
        return num * fact(num - BigInteger.ONE)
    }
}

尾递归

tailrec

3、类的实例化

class Rect(var height: Int, var width: Int) {
    fun addC() {
    }
}
fun main(args: Array<String>) {
    var rect01 = Rect(20, 10)
    rect01.height
    rect01.width
    rect01.addC()
}

4、继承open

open class Father {
    var chactor : String = "性格内向"
    open fun action (){
        println("公共场合喜欢大声喧哗")
    }
}
class Son : Father(){
    override fun action(){
        println("公共场合有礼貌")
    }
}

5、抽象类

abstract class Human(var name: String) {
    abstract fun eat()
}
class Man(name: String) : Human(name) {
    override fun eat() {
    }
}
var person = Man("xiaoming")
person.eat()

6、接口

interface Woman {
}

7、委托和代理

interface Human {
    fun baby()
}
class Woman : Human{
    override fun baby() {
    }
}
class Man: Human by Woman(){
    override fun baby() {
        Woman().baby()
    }
}

8、单例模式

object Woman : Human{
    override fun baby() {
    }
}

9、枚举

enum class Week {
    星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日
}
fun main(args: Array<String>) {
    Week.星期一.ordinal//第几个元素,从零开始
}

10、sealed class

sealed class Son {
    fun sayHello(){
    }
    //子类类型有限
    class xm() : Son()
    class xg() : Son()
}
fun main(args: Array<String>) {
    var s1 :Son = Son.xg()
    var s2 :Son = Son.xm()
    var list = listOf<Son>(s1,s2)
}

11、闭包

你可能感兴趣的:(kotlin)