Kotlin中的修饰符

前言

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中的修饰符)