JavaA2Z

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

staticクラス

日本語 静的クラス
英語 static class
ふりがな すたてぃっくくらす
フリガナ スタティッククラス

解説

staticで修飾されたクラス
static class クラス{ クラス定義 }」のように、クラス宣言の先頭にstaticが付けられたクラス
内部クラスとして宣言する際に付ける事で、staticメソッドから普通に使用することができる。
本来の意味での「内部クラス」として使用する場合には、「インスタンスの中にインスタンスがある」という状態でなければならないため、staticクラスの場合には使用できない。逆に言うと、そのような利用方法を取らない場合にはstaticクラスの方が使いやすいだろう。

参考サイト

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

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

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

// Sample.java
public class Sample
{
    // staticメソッド。
    public static void main( String[] args )
    {
        // StaticClassを作ります。
        StaticClass staticClass = new StaticClass();
        // あとは普通に使えます。
        staticClass.output();
        // StaticClass#output()

        // 非staticクラスは同じようには作れません。
        // NonStaticClass nonStaticClass = new NonStaticClass();
        // コンパイルエラー:
        // 型 Sample のエンクロージング・インスタンスを持つ割り振りを明示的に指定する必要があります。(例 x.new A() で、x が Sample のインスタンス)

        // 非staticメソッドからも使えます。
        Sample sample = new Sample();
        sample.useStaticClass();
    }

    /**
    *   StaticClassクラスを使うメソッド(非staticメソッド)。
    */
    private void useStaticClass()
    {
        // StaticClassを作ります。
        StaticClass staticClass = new StaticClass();
        // あとは普通に使えます。
        staticClass.output();
        // StaticClass#output()

        // ちなみに非staticメソッドからなら
        // 非staticクラスも使えます。
        NonStaticClass nonStaticClass = new NonStaticClass();
        nonStaticClass.output();
        // StaticClass#output()
    }

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

    /**
    *   非staticクラス。
    */
    class NonStaticClass
    {
        public void output()
        {
            System.out.println( "StaticClass#output()" );
        }
    }
}

// グローバルなstaticクラスは作れません。
// static class StaticClass{}
// コンパイルエラー:
//クラス StaticClass の無許可の修飾子 ; public、abstract、および final のみ許可されています。
// Sample.java
public class Sample
{
    // staticメソッド。
    public static void main( String[] args )
    {
        // StaticClassを作ります。
        StaticClass staticClass = new StaticClass();
        // あとは普通に使えます。
        staticClass.output();
        // StaticClass#output()

        // 非staticクラスは同じようには作れません。
        // NonStaticClass nonStaticClass = new NonStaticClass();
        // コンパイルエラー:
        // 型 Sample のエンクロージング・インスタンスを持つ割り振りを明示的に指定する必要があります。(例 x.new A() で、x が Sample のインスタンス)

        // 非staticメソッドからも使えます。
        Sample sample = new Sample();
        sample.useStaticClass();
    }

    /**
    *   StaticClassクラスを使うメソッド(非staticメソッド)。
    */
    private void useStaticClass()
    {
        // StaticClassを作ります。
        StaticClass staticClass = new StaticClass();
        // あとは普通に使えます。
        staticClass.output();
        // StaticClass#output()

        // ちなみに非staticメソッドからなら
        // 非staticクラスも使えます。
        NonStaticClass nonStaticClass = new NonStaticClass();
        nonStaticClass.output();
        // StaticClass#output()
    }

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

    /**
    *   非staticクラス。
    */
    class NonStaticClass
    {
        public void output()
        {
            System.out.println( "StaticClass#output()" );
        }
    }
}

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

この単語を含むページ

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

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

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