我在一堂课上有这个:
if (people.count < 10)
return false;
但是count用红色标记,表示 将 count 的可见性更改为默认值
count在另一个类中是私有的。但我不想将其更改为默认值。我知道这是一种不好的做法。我怎样才能让它在没有 setter 和 getter 的情况下工作?
我在一堂课上有这个:
if (people.count < 10)
return false;
但是count用红色标记,表示 将 count 的可见性更改为默认值
count在另一个类中是私有的。但我不想将其更改为默认值。我知道这是一种不好的做法。我怎样才能让它在没有 setter 和 getter 的情况下工作?
您可以更改可见性或公开 getter。要求另一种方法来做到这一点实际上是在问,“我怎样才能在不暴露变量的情况下暴露它?” 所以,你的电话。
该字段count
是私有的,因为它封装在类中。除了通过类的非私有成员之外,您不打算访问它。
将其访问权限更改为“默认”很容易但有害。
通过一些技巧(反射、本机方法……)访问它会更加复杂并且仍然有害。
暴露一个吸气剂很容易也很合适。
if (people.getCount() < 10)
return false;
你只有两个选择;更改可见性或使用 getter 和 setter。使用 getter 和 setter 的优点是它遵循封装原则,这在 Java 中很重要。