Kotlin实战2 — 类和属性

Kotlin实战2 — 类和属性

属性

类的概念就是把数据处理和处理数据的代码封装成一个单一的实体。在Java中,数据存储在字段中,通常还是私有的。如果想让类的使用者访问到数据,要提供访问器方法,一个setter,一个getter。

在Java中,字段和其访问器的组合常常被叫做属性。在Kotlin中,类声明一个属性和声明一个变量一样:使用val和var关键字。

1
2
3
4
class Person(
val name: String
var isMarried: Boolean
)

当我们声明属性的时候,就声明了对应的构造器(val属性只有getter构造器,而var属性有setter和getter)。Kotlin的Person隐藏了和原始Java代码相同的实现,所以无论在Java代码中,还是Kotlin代码中,都可以用同样的方式使用这个类。

1
2
3
4
5
6
// java
Person person = new Person("Bob", true);
System.out.prientln(person.getName);
// kotlin
val person = Person("Bob", false) // 调用构造方法不需要关键字new
println(person.name) // 直接访问属性,但调用的是getter

自定义访问器

1
2
3
4
5
6
7
class Rectangle(val height: Int, val width: Int) {
val isSquare: Boolean
get() {
return height == width;
}
}
// or get() = height == width
0%