マンガで分かる Java入門講座

第7章 クラスとオブジェクト1
7-8. staticフィールドとstaticメソッド

クラス固有のフィールドやメソッドについて紹介します。

● staticなフィールドとメソッド

 Javaでは、クラスはオブジェクトの雛形として利用するだけでなく、直接フィールドやメソッドを持つことができます。そういったフィールドやメソッドには「static」という修飾子を付けます。

 このstaticなフィールドやメソッドは、オブジェクトの初期化を行わずに、「クラス名.フィールド名」「クラス名.メソッド名()」とすることで利用が可能です。

 注意すべき点は、staticなメソッドからは、非staticなフィールドやメソッドが利用できないことです。

 なぜならば、非staticなフィールドは、オブジェクトが作成されるまでは、インスタンス化されていないからです。存在しない物にアクセスすることはできません。だから、最初からアクセス自体が禁止されています。

図)非staticなフィールドにはアクセスできない
┏クラス━━━━━┓
┃        ┃
┃private static ┃public static
┠─●フィールド ┠─○フィールド
┠─●メソッド  ┠─○メソッド──────────┐
┃        ┃                ×禁止!
┃────────┃                │
┃        ┃           ┏メモリ━↓━━━━┓
┃private     ┃public     確保 ┃┏インスタンス━┓┃
┠─●フィールド→┠─○フィールド→→→→→┃・変数    ┃┃
┠─●メソッド  ┠─○メソッド     ┃┗━━━━━━━┛┃
┗━━━━━━━━┛           ┗━━━━━━━━━┛

図)非staticなメソッドにもアクセスできない
┏クラス━━━━━┓
┃        ┃
┃private static ┃public static
┠─●フィールド ┠─○フィールド
┠─●メソッド  ┠─○メソッド─────────────────┐
┃        ┃                       │
┃────────┃                       │
┃        ┃           ┏メモリ━━━━━━┓ │
┃private     ┃public     確保 ┃┏インスタンス━┓┃ │
┠─●フィールド→┠─○フィールド→→→→→┃・変数    ┃┃ │
┠─●メソッド  ┠─○メソッド─────→┗━━━━━━━┛┃ │
┗━━━━━━━━┛   ↑    利用 ┗━━━━━━━━━┛ │
          禁止!×                   │
             └───────────────────┘

● staticなフィールドとメソッドの実例

 前回利用したMyClassにstaticなフィールドとメソッドを追加してみます。

ソースコード)staticなフィールドとメソッド src/sample/MyClass.java
package sample;

public class MyClass {
    (省略)

    // staticなフィールド
    public static String classNameJa = "マイ クラス";

    // staticなメソッド
    public static String getClassNameJa() {
        return "メソッド:" + classNameJa;
    }
}

ソースコード)staticなフィールドとメソッドの利用 src/sample/Sample.java
package sample;

public class Sample {
    public static void main(String[] args) {
        System.out.println(MyClass.classNameJa);
        System.out.println(MyClass.getClassNameJa());
    }
}

出力)staticなフィールドとメソッドの利用
マイ クラス
メソッド:マイ クラス

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/05/30  更新:2015/08/09  [Permalink]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×