kt 的构造方法
分为主构造 和次构造
主构造
class KtText private constructor() {
//这样的形式为主构造 可以使用 private 等 修饰词修饰 但是有修饰 的时候必须添加 constructor
//其他修饰的constructor可以省略
}
class KtText () {
//其他修饰的constructor可以省略
}
class KtText (name:String) {
//带参数的主构造
}
次构造
class KtText1 {
//次构造 可以有多个 方法体可以省略
constructor(n: String?) {
}
constructor()
}
当主构造方法和次构造方法同时存在,次构造方法必须调用主构造方法
构造方法调用构造方法的方式,使用:this
来调用
class KtText1 () {
//次构造 可以有多个 方法体可以省略
constructor(n: String?) :this(){
}
constructor()
}
区别以及使用
需要注意的是主构造方法的方式 和我们之前的java 的区别 很大 java 的写法是这样的
public class Text {
private String naem;
private int age;
public Text() {
}
public Text(String naem, int age) {
this.naem = naem;
this.age = age;
}
}
java的构造方法 都有方法体 用来做一些操作 Kt 没有方法体 应该怎么做
kotlin 提供了一个init代码块 来做这些操作 顺序是
主构造器>init代码块>次构造器
class KtText(name :String) {
private var name:String? =null
init{
this.name= name
}
}
但是这样有点繁琐
实际上可以这样写 kt 这样写更简洁
class KtText(var name :String) {
}