一、类
在java中写一个JavaBean类代码比较多
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)
这种类(只有数据没有其他代码)通常被叫做值对象
kotlin中public是默认可见性,所以可以省略。
public class Person(var name: String)
二、属性
当你声明属性的时候,就声明了对应的访问器(var属性既有getter和setter,到那时val属性只有getter)
class Person(var name: String, val age: Int)
fun main() {
var person = Person("lynnlee", 30)//创建对象不需要关键字new
println(person.name)//可以直接访问属性,但调用的是getter
println(person.age)
person.name = "temo"//可以直接修改属性,但调用的是setter
println(person.name)//打印结果temo
}
自定义访问器
声明一个矩形类,判断是否为正方形。自定义isSquare的getter访问器
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
}
}