こうすべき! オブジェクト指向プログラミング  確認問題2
中間テストの一部解答です。

再利用を考慮すると、『商品コードとその数量』という単位で、命令を分割していくと再利用しやすいことがわかります。
『画面表示』、『ファイル書き込み』『ファイル読み込み』、『データ設定』・・などの命令を、 一つの『商品コードとその数量』の情報に対する命令として作れば、 前述で列挙した「複数のファイルで集計」、「特定範囲のデータを抽出」・・ でも利用できそうという訳です。
そこで次のように、昔から使われるサブルーチンに対する引数渡しという作り方もできます。

Record2.javaTest.java

public class Record2 {
    public String shoCode;// 商品コード
    public short  suu;    // 数量
}











                 
public class Test{
    public static void display(  , int n){
        System.out.println(n + "番目商品コード:" + rec.shoCode);
        System.out.println(" 商品数:" + rec. );
    }

    public static void main(String[] arg){
        Record2  a = new Record2();
        Record2  b = new Record2();
        a.shoCode = "A01";
        a.suu = 10;
        b.shoCode = "B02";
        b.suu = 7;
        display(a, 1);
        display(b, 2);
    }
}

しかし、グローバル的なサブルーチンでは、命令と情報の関係が明確に見えません。
例えば display(a, 1)は、aと1の情報で表示させる命令です。
ここで、aが表示したい情報で、1は付随するものという関係ですが、 この逆(1をaの付随情報で表示)にも見えます。
この関係を明確にするために、オブジェクト指向言語では、
aを、付随情報で表示させる』を『a.display( 付随情報 )』のような表記にしました。
そしてこの場合のdisplayは、 aというオブジェクトに対する命令ということで、 そのオブジェクトの設計書(クラス)内で定義する規則になったのです。
次のようになります。

Record2.javaTest.java
import java.io.*;
public class Record2 {
    public String shoCode;// 商品コード
    public short suu;     // 数量

    public void display(int n){
        System.out.printf("%4d番目レコード\n", n);
        System.out.printf("\t商品コード:%s\n", shoCode);
        System.out.printf("\t数量:%d\n", suu);
    }

    public void init(String sho, int n){
        shoCode = sho;
        suu =  n;// キャストが必要
    }
}

public class Test{
    public static void main(String[] arg){
        Record2  a = new Record2();	// 【1】
        Record2  b = new Record2();	// 【2】
        a.init(  );
        b.init(  "B02", 7   );
        a.display(1);
        b.display(2);
    }
}





このようにして、作成したdisplay命令は、と呼ばれます。 (作る順番は自由です)
また、 shoCode 、や suu は、と呼ばれます。
【1】【2】の、 Record2() の表現は、  とよばれ、new で生成するときに実行するものです。これは、クラスの中で定義することができます。

←全ての『未選択』の箇所を正しく選択してから評価ボタンをクリックしてください