アクセス修飾子
デフォルトでは、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 コードでは、ほとんどの場合、プライベート フィールドのみが表示されます。実際には、プライベート フィールドへのアクセスがオブジェクトのパブリック メソッドを介して実行される場合、プライベート フィールドへのそのようなアクセスにより、追加のアクションとチェックを実行することが可能になります。これについては、カプセル化に関するレッスンで詳しく説明します。