一、类的定义
class Test {
}
二、构造函数
主构造函数:
class Test(param1 : String, param2 : Int) {
init {
println("param1:$param1")
println("param2:$param2")
}
}
还可以添加constructor关键字
class Test constructor(param1 : String, param2 : Int) {
init {
println("param1:$param1")
println("param2:$param2")
}
}
次构造函数:
class Test {
constructor() { }
constructor(param1 : String, param2 : Int) { }
}
如果存在次构造函数,必须继承主构造函数:
class Test (param1 : String, param2 : Int) {
constructor(param1 : String, param2 : Int, param3 : Int) :this(param1, param2) {
}
}
初始化块(init)和次构造函数的执行顺序:
我们需要知道,init代码块是主构造函数初始化的地方,当主构造函数被实例化的时候,init代码块必然执行。
当次构造函数被实例化的时候,init代码块首先被执行,然后才会执行次构造函数的实现。
私有构造函数:
class Test private constructor(param1 : String, param2 : Int) {
private constructor(param1 : String, param2 : Int, param3 : Int) :this(param1, param2) {
}
}
构造函数时可以被私有的,如果被私有,外部将不能访问,也就是说,在外部,不能对该构造方法进行实例化。
private 关键字放在 constructor 前面,默认情况下是 public,public情况下,主构造函数的 constructor 关键字可以被省略。
标签:String,继承,kotlin,Int,param2,param1,constructor,构造函数
From: https://blog.51cto.com/u_11099047/8804799