一酪我、類(lèi)
在java中寫(xiě)一個(gè)JavaBean類(lèi)代碼比較多
public class Person {
private final String name;
public PersonJava(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
但是上面的java代碼在kotlin中一行就可以搞定
class Person(val name: String)
這種類(lèi)(只有數(shù)據(jù)沒(méi)有其他代碼)通常被叫做值對(duì)象
kotlin中public是默認(rèn)可見(jiàn)性消痛,所以可以省略。
public class Person(var name: String)
二都哭、屬性
當(dāng)你聲明屬性的時(shí)候秩伞,就聲明了對(duì)應(yīng)的訪問(wèn)器(var屬性既有g(shù)etter和setter,到那時(shí)val屬性只有g(shù)etter)
class Person(var name: String, val age: Int)
fun main() {
var person = Person("lynnlee", 30)//創(chuàng)建對(duì)象不需要關(guān)鍵字new
println(person.name)//可以直接訪問(wèn)屬性质涛,但調(diào)用的是getter
println(person.age)
person.name = "temo"http://可以直接修改屬性稠歉,但調(diào)用的是setter
println(person.name)//打印結(jié)果temo
}
自定義訪問(wèn)器
聲明一個(gè)矩形類(lèi),判斷是否為正方形汇陆。自定義isSquare的getter訪問(wèn)器
fun main() {
val rectangle = Rectangle(20,20)
println(rectangle.isSquare)
}
class Rectangle(val width: Int, val height: Int) {
var isSquare: Boolean = false//必須初始化
get() {//聲明屬性的getter
return width == height
}
}