您当前的位置: 首页 >  kotlin

蓝不蓝编程

暂无认证

  • 2浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

蓝不蓝编程 发布时间:2019-04-08 16:06:19 ,浏览量:2

简要介绍

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 | 安卓 | 前端 | 小程序 | 鸿蒙 公众号:蓝不蓝编程

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0374s