Kotlin中的修饰符

作者: 盛世光阴 | 来源:发表于2021-06-17 23:04 被阅读0次

    前言

    Kotlin是一种在Java虚拟机上运行的静态类型编程语言,被称之为Android世界的Swift,在GoogleI/O2017中,Google宣布Kotlin成为Android官方开发语言

    类的修饰符

    final 修饰的类表示最终类,不可被继承,kotlin中默认创建的类是最终类

    open 被修饰的类可以作为基类被继承

    abstract 抽象类,和java中相同

    enmu枚举类,kotlin中的枚举类需要这样声明

    enmu class Type{
        TYPE1,TYPE2
    }
    

    data数据类,如果类中没有函数只存在属性定义,那么这个类可以被定义为数据类

    data class Response(val code: String, val data: String)
    
    • 会自动生成toString函数,打印属性值
    • 会自动生成componentx函数,直接用于 解构声明
    • 会自动生成equals函数,equals==将会比较属性的值,而不是对象
    Response
        Response(String,String)
        getCode(): String
        getData(): String
        component1(): String
        component2(): String
        copy(String,String): Response
        toString(): String
        haseCode(): int
        equals(Object): boolean
        code:String
        data:String
    
    Log.e("mike", "----${Response("1","2") == Response("1","2")}----") //true
    

    sealed 声明一个密封类,用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时,在某种意义上,他们是枚举类的扩展

    • 密封类和它的子类需要定义在同一个文件中
    • 密封类会生成抽象类,不能用公开的构造函数
    sealed class Locked
    class SLocked:Locked()
    class FLocked:Locked()
    class PLocked:Locked()
    

    一般用于when语句的判断

    when(obj){
        SLocked - > {}
        FLocked - > {}
        PLocked - > {}
    }
    

    annotation 声明一个注解类
    inline 声明一个 内联类
    object 声明一个对象,主要用于单例模式
    private 私有
    public 公开(默认)

    变量的修饰符

    var 修饰可变量
    val 修饰不可变量
    const val 修饰常量 与val的区别?
    internal 相同模块可以访问
    private 私有
    public 公开(默认)

    函数的修饰符

    inline 内联函数
    public 公开(默认)
    private 私有
    override 重写
    operator 运算符重载
    infix 中缀函数
    abstract 抽象
    tailrec 尾递归函数
    reified 泛型的实化

    欢迎关注Mike的简书

    Android知识整理

    相关文章

      网友评论

        本文标题:Kotlin中的修饰符

        本文链接:https://www.haomeiwen.com/subject/rndgeltx.html