简要介绍
Kotlin的类必须有一个主构造函数,可以有多个次要构造函数.
主构造函数
1. 写法一(主构造函数初始化代码在init块中)
class User constructor(name: String) {
val name: String
init {
this.name = name
}
}
2. 精简写法
class User constructor(name: String) {
val name: String = name
}
3. 最精简写法
class User(val name: String)
反编译之后对应的java类(注:上面写法中,如果val替换为var,则对应java里会出现setName方法,表示此属性可修改):
public final class User {
@NotNull
private final String name;
@NotNull
public final String getName() {
return this.name;
}
public User(@NotNull String name) {
Intrinsics.checkParameterIsNotNull(name, "name");
super();
this.name = name;
}
}
如果不需要将构造函数中参数同时作为类属性,也可以写成如下形式(constructor表示构造函数,里面执行初始化的处理):
class User
{
constructor(name:String)
{
}
}
对应java代码:
public final class User {
public User(@NotNull String name) {
Intrinsics.checkParameterIsNotNull(name, "name");
super();
}
}
次要构造函数
必须要要调用主构造函数或已经调用了主构造函数的次要构造函数
class User(val name: String)
{
constructor():this("")
{
}
}
对应java代码:
public User(@NotNull String name) {
Intrinsics.checkParameterIsNotNull(name, "name");
super();
this.name = name;
}
public User() {
this("");
}
附录
官方参考文档:
https://kotlinlang.org/docs/reference/classes.html
关于我
厦门大学计算机专业 | 前华为工程师
分享编程技术,没啥深度,但看得懂,适合初学者。
Java | 安卓 | 前端 | 小程序 | 鸿蒙
公众号:
花生皮编程