构造方法
kotlin中, 一个类的构造方法有好几种形式
-
constructor关键字
?
class User {
private var username:String
private var password:String
// 无参构造
constructor() {
}
// 有参构造
constructor(username:String, password:String) {
this.username = username
this.password = password
}
}
?
?
-
constructor简写形式
// 无参
class User {
}
?
// 有参
class User(username:String, password:String) {
var username:String = ""
var password:String = ""
}
也可以写为
class User (username:String, password:String) {
var username:String? = null
var password:String? = null
}
也可以使用lateinit
表示的是延迟加载, kotlin的类的所有属性在定义时, 都要手动初始化, 但如果不想手动初始化, 那么可以使用lateinit
来修饰
class User (username:String, password:String) {
// 使用lateinit来表示延迟初始化
var lateinit username:String
var lateinit password:String
// 使用lateinit后, 要在init{}中初始化
init {
this.username = username
this.password = password
}
}
-
上面的写法可以继续简化
class User(username:String, password:String) {
// 直接赋值
private var username: String = username
private var password: String = password
}
-
还能够继续简化
class User(private var username: String, private var password: String) {
}
创建对象
kotlin中创建对象不需要java的new
关键字
?
fun main(args: Array<String>) {
var user = User("abc", "123")
}