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