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#
File可以理解为多个Class的集合,一个File类中可以定义多个Class类,在编译的时候,会为每个Class生成一个.class文件
Interface#
和java中的接口类一样的意思,
Sealed Interface#
密封接口
Data Class#
Enum class#
为啥不是Enum Class 呢?
Sealed Class#
Annotation#
Object#
作者:Charlotte
出处:https://www.cnblogs.com/charlottepl/p/16700685.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
你可以在这里自定义其他内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理