JavaA2Z

KAB-studio > プログラミング > JavaA2Z > privateクラスとは

privateクラス

日本語 隠蔽クラス
英語 private class
ふりがな ぷらいべーとくらす
フリガナ プライベートクラス

解説

privateで修飾されたクラス
 
private class クラス{ クラス定義 }」のように、クラス宣言の先頭にprivateが付けられたクラス
内部クラスとして宣言する際に付ける事で、外部クラス及び内部クラスからのみ使用可能なクラスとなる。
外部クラスの内部処理専用であり、他のクラスでは使用して欲しくないクラスに使用する。
 
特定のクラスを「絶対に他のクラスにアクセスされたくない」場合に使用する。
ただし、多くの場合パッケージを利用することでほぼ同じアクセスコントロールが可能となる。
内部クラスは「クラスの中にクラス」が増えることになり、1ソースファイル内のプログラムが増大し、可読性やメンテナンス性が低下する。「1クラスにつき1ソースファイル」が理想と考えると多用は控えた方がいいだろう。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        Sample sample = new Sample();
        // Privateクラスを使用します。
        PrivateClass privateClass = sample.new PrivateClass();
        privateClass.output();
        // PrivateClass#output()

    }

    /**
    *   privateクラス。
    */
    private class PrivateClass
    {
        public void output()
        {
            System.out.println( "PrivateClass#output()" );
        }
    }
}

/**
*   フツーのクラス。
*/
class NormalClass
{
    /**
    *    自分のクラスを使うクラス。
    */
    private void usePrivateClass()
    {
        // Privateクラスは使用できません。
        // PrivateClass privateClass;
        // コンパイルエラー:
        // PrivateClass は解決できないか、型ではありません。

        // Sample.PrivateClass privateClass;
        // コンパイルエラー:
        // 型 Sample.PrivateClass は不可視です。
    }
}

/**
*   グローバルなprivateクラスは作れません。
*/
// private class PrivateClassOnGlobal{}
// コンパイルエラー:
// クラス PrivateClassOnGlobal の無許可の修飾子 ; public、abstract、および final のみ許可されています。
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        Sample sample = new Sample();
        // Privateクラスを使用します。
        PrivateClass privateClass = sample.new PrivateClass();
        privateClass.output();
        // PrivateClass#output()

    }

    /**
    *   privateクラス。
    */
    private class PrivateClass
    {
        public void output()
        {
            System.out.println( "PrivateClass#output()" );
        }
    }
}

/**
*   フツーのクラス。
*/
class NormalClass
{
    /**
    *    自分のクラスを使うクラス。
    */
    private void usePrivateClass()
    {
        // Privateクラスは使用できません。
        // PrivateClass privateClass;
        // コンパイルエラー:
        // PrivateClass は解決できないか、型ではありません。

        // Sample.PrivateClass privateClass;
        // コンパイルエラー:
        // 型 Sample.PrivateClass は不可視です。
    }
}

/**
*   グローバルなprivateクラスは作れません。
*/
// private class PrivateClassOnGlobal{}
// コンパイルエラー:
// クラス PrivateClassOnGlobal の無許可の修飾子 ; public、abstract、および final のみ許可されています。

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/01/28
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。