【发布时间】:2018-08-29 11:47:05
【问题描述】:
我对 Kotlin 非常陌生,并试图将一个项目从 Java 迁移到它。我对 Kotlin 的属性和 getter/setter 以及可见性范围有点困惑。
我想要实现的是:
public class Foo {
private int number;
public int getNumber() {
return number;
}
public void increment() {
number++;
}
}
所以基本上我需要创建一个具有私有属性number 的类。这个属性应该可以被公共 getter 访问,但它不应该有一个 setter。此外,该属性应该是内部可变的,以便可以使用increment() 等方法更改其值。
据我了解,我不能将它声明为val,因为在这种情况下,它是完全不可变的,即使在类的实例中也是如此,所以我不能递增它。看起来应该是var。但是我看不到使属性本身为private 和此属性的getter 为public 的选项,因为似乎属性及其getter/setter 应该具有相同的可见性范围...
【问题讨论】: