kotlin枚举和密封类

package kotlinall.chapter4

/**
 * 枚举是实例可数的类,枚举也是类
 * 可以修改构造,添加成员
 * 可以使代码清晰 但是需要一定开销
 */
enum class LogLevel(val id:Int){
    VERBOSE(1),DEBUG(4),INFO(2),WAR(3),ERROR(5),ASSERT(7);
    fun getTag():String{
        return "$id  $name"

    }

    override fun toString(): String {
        return "$name $id"
    }
}
class LogLevel2 protected constructor(){//等价的写法
    private var a:Int = 3
    val VERBOSE = LogLevel2()
    val DEBUG = LogLevel2()
    val INFO = LogLevel2()
    val WARN = LogLevel2()
    val ERROR = LogLevel2()
}
private var a:Int = 0//定义地方的范围
//密封类
sealed class PlayerCmd{//sealed class 子类只能定义在同一个文件中
    class Paly(val url:String,val pos:Int):PlayerCmd()
    class Seek(val pos:Long):PlayerCmd()
    object Pause:PlayerCmd()
    object Resume:PlayerCmd()
    object Stop:PlayerCmd()
}
fun main(args: Array<String>) {
    println(LogLevel.DEBUG.getTag())
    println(LogLevel.DEBUG.ordinal)//定义的位置
    println(LogLevel.values().map(::println))//打印所有的值
    println(LogLevel.valueOf("error".toUpperCase()))//根据名称找到对象
    a = 0
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值