我们先写一个Java中的一个简单的JavaBean类Student,只包含一个属性,name。
public class Student { private final String name; public Person(String name) { this.name = name; } public String getName() { return name; } }而Kotlin中同样的类是这样的:
class Student(val name: String)在Kotlin中public是默认的可见性,所以可以省略。这种只有数据没有其它代码的类,通常被叫做值对象,Kotlin提供了简明的
语法来声明它们。
在Java中,数据存储在字段中,通常是私有的,提供访问器方法:一个getter,可能还有一个setter,这种字段和其访问器的组合常常被叫作属性。
在Kotlin中,属性是头等的语言特性,完全代替了字段和访问器方法。在类中声明一个属性和声明一个变量一样:使用val和var关键字。声明成val的属性是只读的,而var属性是可变的。
class Student(val name: String, var age: String)上面的类中声明了一个只读属性name,可写属性age。使用Student类:
val student = Stedent("Li", 16) println(student.name) println(studengt.age) >>>Li >>>16Kotlin找中可以直接使用属性,不在需要调用getter。
当然Kotlin通用支持使用getter,这个时候需要自定义getter来计算出属性的值。
class Rectangle(val height: Int, val width: Int) { val isSquare: Boolean get() { return height == width } } val re = Rectangle(22, 23) println(re.isSquare) >>>false属性isSquare有一个自定义实现的getter,它的值是每次访问属性的时候计算出来的。