美文网首页
Kotlin构造函数

Kotlin构造函数

作者: 挨踢小能手 | 来源:发表于2020-01-10 16:04 被阅读0次

    最近刚从java切换到kotlin以前java的构造函数如果是继承的话,基本都是ctrl + enter方式快速生成构造函数,在kotlin中这样不行了,下面总结下kotlin的构造函数方式,以及与java的区别

    java一般构造函数如下

        public class Person {
    
        public String name;
    
        Person(String name){
            this.name = name;
        }
    }
    

    构造函数与类名相同。

    在kotlin中构造函数分为

    • 主构造函数
    • 次构造函数

    一、主构造函数

    主构造函数是类头的一部分,跟在类名之后

    class Person constructor(name:String){
        
    }
    

    如果主构造函数没有任何注解或者可见性修饰符,可以省略这个 constructor 关键字。

    class Person (name:String){
    }
    

    注意:主构造函数不能包含任何代码,初始化代码可以放到以init关键字作为前缀的初始化块中。

    如下

    1.在init中初始化

    class Person (name:String){
        val name:String
    
        init {
            this.name = name
        }
    }
    

    主构造器的参数可以在初始化块中使用,也可以在类体声明使用

    2.在类的声明体内初始化

    class Person (name:String){
        val name = name
    }
    

    kotlin还有更简介的方式如下

    3.在构造器中定义属性

    class Person (val name: String){
    }
    

    二、次构造函数

    次构造器前缀必须有关键字constructor

    class Person (name: String , age:Int){
        private val name: String = name
        private var age: Int = age
        private var address: String = ""
        
        constructor(username: String, age: Int, address: String) : this(username ,age) {
            this.address = address
        }
    }
    

    如果类已经声明了主构造器,在次构造器中需要委托给主构造函数,上面例子中使用this(username ,age),委托给主构造器。

    在即有主构造器, 又有次构造器的情况,次构造器最终都是调用了主构函数来创建对象

    相关文章

      网友评论

          本文标题:Kotlin构造函数

          本文链接:https://www.haomeiwen.com/subject/ynfmactx.html