Problem

3/6

アクセス修飾子

Theory Click to read/hide

アクセス修飾子
デフォルトでは、Java のクラスのすべてのフィールドメソッドプライベートです。つまり、このクラスのオブジェクトの外部では、どのメソッドもこのクラスのオブジェクトのフィールドとメソッドを使用できません。

フィールドとメソッドは、アクセス修飾子 public を使用して公開できます。フィールドを非公開にする private 修飾子もあります。すべてのフィールドとメソッドはデフォルトでプライベートであるため、オプションです。 public  および private 修飾子の使用例を次に示します。 クラスの本 { パブリック文字列名; 文字列の作成者名; プライベート int ageRequirement; 文字列テキスト; public int pageCount; int getTextLength() { テキストの長さを返す(); } public int getAverageLetterCount() { getTextLength() / pageCount を返します。 } プライベート int getDifficuiltyLevel() { return 5 * ageRequirement * text.Length(); } }
このバージョンの Book クラスでは、フィールド name   および pageCount   が、他のオブジェクトでの読み取りと変更のために公開されます。 getAverageLetterCount() メソッドは、他のクラスのオブジェクトから呼び出すこともできます。他のすべてのフィールドとメソッドは非公開のままで、このクラスのメソッドでのみ使用できます。パブリック メソッド getAverageLetterCount() では、プライベート メソッド getTextLength() を呼び出すことができます。これは、getAverageLetterCount() がクラス自体に属しているためです。ただし、別のクラスのメソッドからは機能しません。

しかし、なぜフィールドを非公開にするのでしょうか? Java コードでは、ほとんどの場合、プライベート フィールドのみが表示されます。実際には、プライベート フィールドへのアクセスがオブジェクトのパブリック メソッドを介して実行される場合、プライベート フィールドへのそのようなアクセスにより、追加のアクションとチェックを実行することが可能になります。これについては、カプセル化に関するレッスンで詳しく説明します。

Problem

Book クラスのすべてのフィールドを非公開にします。現在持っているメソッドをすべて削除します。

text の値を変更する 1 つの引数 newText を持つ setText (戻り値の型 void) という名前のパブリック メソッドを作成します。 newText に。テキスト内の単語数をカウントし、それを int として返すプライベート getWordsCount メソッドを追加します。
単語 —スペースを含まない任意の文字列。

複数のスペースが連続して移動できないことが保証されています。