Kotlin-构造函数

一个类有一个主构造函数,可以有多个次构造函数。
主构造函数中不能包含任何代码,初始化代码可以放在初始化代码块中,init关键字:
class Person constructor(name : String){
var myName = name
init{
println("name is ${name}")
}
}
也可以在主构造方法里进行参数的初始化。
class Person (val name : String){
}
这里可以省略constructor关键字。
fun main(args : Array<String>){
val person = Person("kotlin")
println(person.myName)
}

次构造函数
类也可以有二级构造函数,需要加前缀constructor:
class Person{
constructor( name: String){
}
}
如果类有构造函数,每个次构造函数都要直接或间接通过另一个次构造函数代理主构造函数。在同一个类中代理另一个构造函数使用this关键字:
class Person(val name: String){
constructor (name : String ,age: Int) : this(name){
//初始化
}
}
如果一个非抽象类没有声明构造函数,它会默认有一个没有参数的构造函数,如果你不想类有公共的构造函数,可以声明一个空的主构造函数:
class Demo private constructor(){}

当主构造函数和次级构造函数都有时,对象创建过程。
class Person constructor (name: String){
var myName = name
init{
println("初始化 init")
}
constructor(name: String , age: Int) : this(name){
println("age = $age")
}
}
fun main(args : Array<String>){
val person = Person("kotlin", 2)
}
打印结果:
初始化 init
age = 2






























猜你喜欢

转载自blog.csdn.net/zmesky/article/details/80983450