Kotlin各种稀奇古怪的类


从上面的图片可以看出,kotlin可以生成的类比java多了很多。

Class

和java中的class一样,用来定义一个类,

package com.sky.whitebear.Util.EventBus

/**
 * EventBus数据类
 */
class EventMessage constructor(var what : Int) {
    lateinit var map : HashMap<String, Any>;

    init {
        println("what: " + what)
        map = HashMap<String, Any>()
    }

    //辅助构造函数
    constructor(what: Int, _map: HashMap<String, Any>) : this(what){
        map = _map;
    }

    fun add(name : String, value : Any): HashMap<String, Any> {
        map.set(name, value)
        return map
    }

    fun get(name : String) : Any? {
        return map.get(name)
    }
}

在上面的kotlin类中,构造函数分成了主构造函数和辅助构造函数。
主构造函数定义在constructor关键字后面,和java不同的是,只需要在括号里定义一次变量即可,不用在类的结构体中单独定义。初始化代码在init代码块中编写,
辅助构造函数以 constructor():this(){} 这个结构进行定义。
在使用的时候,根据参数类型或者个数进行判断,初始化调用顺序如下:

  • 如果符合主构造函数的结构,则只执行init代码块中的内容。
  • 如果符合辅助构造函数,则先执行init,再执行对应的辅助构造函数中的内容。

File

Interface

Sealed Interface

Data Class

Enum class

为啥不是Enum Class 呢?

Sealed Class

Annotation

Object

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值