-3

私はこれを1つのクラスに持っています:

if (people.count < 10)
    return false;

ただし、カウントには赤で下線が付けられており 、「カウントの可視性をデフォルトに変更する」と書かれています

countはプライベートとして別のクラスにあります。しかし、デフォルトに変更したくありません。私はそれが悪い習慣であることを知っています。セッターとゲッターなしで機能させるにはどうすればよいですか?

4

4 に答える 4

3

可視性を変更するか、ゲッターを公開できます。これを行う別の方法を求めることは、文字通り、「変数を公開せずに公開するにはどうすればよいですか?」と尋ねることです。それで、あなたの電話。

于 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

選択肢は 2 つだけです。可視性を変更するか、ゲッターとセッターを使用してください。ゲッターとセッターを使用する利点は、Java で重要なカプセル化の原則に準拠していることです。

于 2013-04-11T17:46:19.153 に答える