【独学Java入門⑭】クラスとインスタンス

クラスとインスタンスについて今回はご説明します。このサイトのPythonを学習された方がスムーズに理解してもらえるように同じ例で進めていきます。

ライザップという有名なスポーツジムで例えたいと思います。ライザップでは入会申込書が用意されています。この未記入の入会申込書がクラスのイメージです。項目は決まっていますが具体的な数値や文字列は入っていません。空っぽの入会申込書からはどんなお客様かイメージできません。

入会申込書
氏名name
身長ht
体重wt
年齢age

太郎さんが入会申込書の各項目(フィールド名)に記入しました。

入会申込書
氏名nametaro
身長ht170
体重wt60
年齢age35

記入された入会申込書からは太郎さんがイメージできるようになりました。このように具体的な数値や文字列などのデータを持ったクラスがインスタンスです。

入会申込書に記入できるのは「人」だけなので、入会申込書に記入を行った「太郎さんは人です」という条件も付けたいと思います。

//クラスの定義 人は以下の情報を持つ
class human
{
    String name;
    float ht;
    float wt;
    int age;
}

//太郎は人です と定義

クラス名 変数名 = new クラス名();
human    taro  = new  human();

実際にソースコードで確認してみます。

//クラスの定義
class human
{
    String name;
    float ht;
    float wt;
    int age;
}

class taro_human
{
    public static void main (String args[]) {

        //インスタンス化
        human taro = new human();
        taro.name = "taro";
        taro.ht = 170;
        taro.wt = 60;
        taro.age = 35;
  
        System.out.println(taro.age);
        System.out.println(taro.ht);
        System.out.println(taro.wt);
    }
}

//コメントはコピーペーストしないでください
//または-encoding utf-8をつけて
//コンパイルしてください
//右が切れたら左にスワイプしてください

前回分と合わせてここまでをまとめると、人である太郎は空欄の入会申込書(クラス)の項目(フィールド)に太郎の身長や体重などの具体的なデータ(プロパティ)を入力すると(インスタンス化)、今まで空欄で意味を持たなかった入会申込書から太郎という具体的なイメージ(インスタンス)ができました。

ここで前回の太郎のオブジェクトとインスタンス化で定義しているものが全く一緒じゃないかと思われたかと思います。実はそうです。インスタンスの別名がオブジェクトになります。Pythonも考え方は同じです。

独学Java入門一覧に戻る