-3

我在一堂课上有这个:

if (people.count < 10)
    return false;

但是count用红色标记,表示 将 count 的可见性更改为默认值

count在另一个类中是私有的。但我不想将其更改为默认值。我知道这是一种不好的做法。我怎样才能让它在没有 setter 和 getter 的情况下工作?

4

4 回答 4

3

您可以更改可见性或公开 getter。要求另一种方法来做到这一点实际上是在问,“我怎样才能在不暴露变量的情况下暴露它?” 所以,你的电话。

于 2013-04-11T17:45:02.420 回答
1

该字段count是私有的,因为它封装在类中。除了通过类的非私有成员之外,您不打算访问它。

将其访问权限更改为“默认”很容易但有害。

通过一些技巧(反射、本机方法……)访问它会更加复杂并且仍然有害。

暴露一个吸气剂很容易也很合适。

于 2013-04-11T17:46:36.420 回答
0
if (people.getCount() < 10)
    return false;
于 2013-04-11T17:45:19.540 回答
0

你只有两个选择;更改可见性或使用 getter 和 setter。使用 getter 和 setter 的优点是它遵循封装原则,这在 Java 中很重要。

于 2013-04-11T17:46:19.153 回答