失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Kotlin构造函数(constructor)完全解析

Kotlin构造函数(constructor)完全解析

时间:2022-10-04 22:03:25

相关推荐

Kotlin构造函数(constructor)完全解析

简要介绍

Kotlin的类必须有一个主构造函数,可以有多个次要构造函数.

主构造函数

1. 写法一(主构造函数初始化代码在init块中)

class User constructor(name: String) {val name: Stringinit {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 {@NotNullprivate final String name;@NotNullpublic 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("");}

附录

官方参考文档:/docs/reference/classes.html

关于我

厦门大学计算机专业 | 前华为工程师

Java | 安卓 | 前端 | 小程序 | 鸿蒙

公众号:蓝不蓝编程

如果觉得《Kotlin构造函数(constructor)完全解析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。