Kotlin进阶学习

来源:互联网 发布:快刀软件多少钱? 编辑:程序博客网 时间:2024/06/05 03:29

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、闭包