JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ローカルクラスとは

ローカルクラス

日本語 局所種類
英語 local class
ふりがな ろーかるくらす
フリガナ ローカルクラス

解説

メソッドクラス
クラスは実は、メソッド内で宣言定義することができる。これを「ローカルクラス」と言う。
ローカルクラスはローカル変数と同様のスコープを持ち、ブロックメソッド内でのみ有効となる。
そのため、ローカルクラスはpublicprivateprotected等のアクセス修飾子を付けることができない。クラススコープローカル変数と同じ、と決められているためである。
 
一応内部クラスの一種。だが、内部クラスの特徴である「外部クラスインスタンス内に内部クラスインスタンスが含まれる」という仕組みは持っていない。
スコープローカル変数と同じ、という点以外普通のクラスとほとんど変わらない、という特徴ではないような特徴を持つ。
 
ローカルクラスは、実際にはほとんど使用されない。
メソッド内にいきなりクラスが現れても戸惑うだけのため、使用は控えた方がいいだろう。

参考サイト

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

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        {
            // ローカルクラスを宣言します。
            class LocalClass
            {
                // フィールド。
                private int value = 100;

                // メソッド。
                public void output()
                {
                    System.out.println( value );
                }
            }

            // このローカルクラスを使用します。
            LocalClass localClass = new LocalClass();
            localClass.output();
            // 100
        }

        // ローカルクラスはローカル変数と同様のスコープを持ちます。
        // なので、ブロックの外では使用できません。
        // LocalClass localClass;
        // コンパイルエラー:
        // LocalClass は解決できないか、型ではありません。

        // ローカルクラスにアクセス修飾子は付けられません。
        // public class PublicLocalClass{}
        // コンパイルエラー:
        // ローカル・クラス PublicLocalClass の無許可の修飾子 ; abstract または final のどちらか 1 つのみ許可されています。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        {
            // ローカルクラスを宣言します。
            class LocalClass
            {
                // フィールド。
                private int value = 100;

                // メソッド。
                public void output()
                {
                    System.out.println( value );
                }
            }

            // このローカルクラスを使用します。
            LocalClass localClass = new LocalClass();
            localClass.output();
            // 100
        }

        // ローカルクラスはローカル変数と同様のスコープを持ちます。
        // なので、ブロックの外では使用できません。
        // LocalClass localClass;
        // コンパイルエラー:
        // LocalClass は解決できないか、型ではありません。

        // ローカルクラスにアクセス修飾子は付けられません。
        // public class PublicLocalClass{}
        // コンパイルエラー:
        // ローカル・クラス PublicLocalClass の無許可の修飾子 ; abstract または final のどちらか 1 つのみ許可されています。
    }
}

この単語を含むページ

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

「解説」に含まれているページ

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

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