インスタンスと値 - 萌えJava超入門
第十六章 インスタンス

インスタンスと値

インスタンスは値のための仕組みです。



インスタンスの使い方


インスタンスに複数の変数を設定すると、
インスタンスを1つのデータのまとまりにすることができます。
配列と異なり、様々なデータ型を設定できます。
C言語の構造体の様な使い方です。



Member_01には、変数4つとメソッドが1つあります。
いずれもインスタンスメンバです。
構造体と異なるのは、メソッドを同時に設定できる点です。
Member_01をインスタンス化して使います。

//Member_01.java
class Member_01 {
    int no;
    String name;
    int max_hp;
    int now_hp;

    void print(){
        System.out.println();
        System.out.println("NO." + no + "\t" + name);
        System.out.println("MAX_HP:\t" + max_hp);
        System.out.println("NOW_HP:\t" + now_hp);
        System.out.println("------------------");
    }
}
このサンプルコードは、カプセル化されていません。
あくまでも説明のためのもので、インスタンスの使い方としてはおススメできないものです。
ご容赦ください。





Driver_01 には mainメソッドがあります。
Member_01のインスタンスを3つ生成して、
それぞれのインスタンスに別々の値を代入しています。
Member_01の printメソッドで変数の値を出力しました。

//Driver_01.java
class Driver_01{
  public static void main(String[] args){
        Member_01 shiz = new Member_01();//インスタンス化
        shiz.no = 1;
        shiz.name = "館石静乃";
        shiz.max_hp = 12;
        shiz.now_hp =  7;

        Member_01 maya = new Member_01();//インスタンス化
        maya.no = 2;
        maya.name = "桜井真夜";
        maya.max_hp = 11;
        maya.now_hp =  9;

        Member_01 tema = new Member_01();//インスタンス化
        tema.no = 3;
        tema.name = "安堂てまり";
        tema.max_hp = 14;
        tema.now_hp =  8;

        shiz.print();
        maya.print();
        tema.print();
  }
}


ゴメン。
-encodingオプション使っていい?
ダウンロードのソースファイルは
UTF-8なんで。
ちょっと!
急ね!

コマンドライン
>javac -encoding UTF-8 Driver_01.java
>java Driver_01

NO.1    館石静乃
MAX_HP: 12
NOW_HP: 7
------------------

NO.2    桜井真夜
MAX_HP: 11
NOW_HP: 9
------------------

NO.3    安堂てまり
MAX_HP: 14
NOW_HP: 8
------------------



3つのインスタンスそれぞれに
別々の番号と名前が
保存されていることがわかる。




確かに配列と違って
いろいろなデータ型の変数を
収納しておけるわね。
なるほど。
インスタンスの使い方
インスタンスは、
複数の変数をまとめて保管するのに向いています。



お疲れ様でした。




© 2019 awasekagami