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






























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值