メソッドの例をもうひとつ

点数を5科目に

Seito1Kamoku は名前と点数1つを入れるクラス(型)でしたが、5科目の点数を入れられるようにし、合計や平均を求めるメソッドを加えます。

ファイル名 Seito5Kamoku.java

次のように拡張します。

// Seito5Kamoku.java
public class Seito5Kamoku { 
    /* フィールド */
    String namae;
    int koku;
    int chir;
    int suug;
    int rika;
    int eigo;
    double kamokusuu = 5;
    /* コンストラクタ */
    public Seito5Kamoku( String s, int n1, int n2, ...  ){
       namae = s;
       koku = n1;
       chir = n2;
       suug = n3;
       rika = n4;
       eigo = n5;
    }
    /* メソッド */
    public String toString(){
       return namae + " " + koku + " " + chir + ....;
    }
    // 合計
    public int goukei(){
       return koku + chir + suug + rika + eigo;
    }
    // 平均
    public double heikin(){
       return (koku + chir + suug + rika + eigo)/kamokusuu;
    }
}

メソッド(関数)を使う

Seito.java をSeito5Kamokuを使うように書き直したプログラムです。goukei() と heikin() のメソッドを使っています。

ファイル名 Seito2.java

public class Seito2 { 
    public static void main( String[] args ) {
       Seito5Kamoku seito1 = new Seito5Kamoku("岩井 亜紀",78,65,75,69,60);
       Seito5Kamoku seito2 = new Seito5Kamoku("河合 和子",45,48,76,61,55);

       System.out.println( seito1.toString() );
       System.out.print ("合計 ");
       System.out.println( seito1.goukei() );
       System.out.print ("平均 ");
       System.out.println( seito1.heikin() );

       System.out.println( seito2.toString() );
       System.out.print ("合計 ");
       System.out.println( seito2.goukei() );
       System.out.print ("平均 ");
       System.out.println( seito2.heikin() );
    }
}

配列と組み合わせて使う

ファイル名 Goukei4.java

public class Goukei4 { 
    public static void main( String[] args ) {
       Seito5Kamoku[] test1 = {
               new Seito5Kamoku("岩井 亜紀",78,65,75,69,60),
               new Seito5Kamoku("河合 和子",45,48,76,61,55),
               new Seito5Kamoku("木原 園子",65,76,46,58,77),
               new Seito5Kamoku("布川 麻子",35,49,51,20,55),
               new Seito5Kamoku("福永 秋絵",92,87,98,68,80),
               new Seito5Kamoku("三上 美奈",63,68,65,60,58),
               new Seito5Kamoku("矢島 千晶",57,18,58,75,74),
               new Seito5Kamoku("吉沢 裕子",89,67,60,70,38),
               new Seito5Kamoku("渡辺 智子",84,70,78,90,54)
       };
       for ( int i=0; i < test1.length ; i++ ){
           System.out.print( test1[i].toString() );
           System.out.print (" ");
           System.out.print ( test1[i].goukei() );
           System.out.print (" ");
           System.out.println( test1[i].heikin() );
       }
    }
}

Goukei3に比べ今回は科目の平均でなく生徒ごとの合計と平均になっていることに注意してください。これはjavaプログラムの違いでなく、プログラムの目的の違いです。

$ java Goukei4
岩井 亜紀 78 65 75 69 60 347 69.4
河合 和子 45 48 76 61 55 285 57.0
木原 園子 65 76 46 58 77 322 64.4
布川 麻子 35 49 51 20 55 210 42.0
福永 秋絵 92 87 98 68 80 425 85.0
三上 美奈 63 68 65 60 58 314 62.8
矢島 千晶 57 18 58 75 74 282 56.4
吉沢 裕子 89 67 60 70 38 324 64.8
渡辺 智子 84 70 78 90 54 376 75.2

課題

1.

上記 Seito5Kamoku.java をつくり、コンパイルしなさい。(実行はできません)

ファイル名 Seito5Kamoku.java

... の部分は完成していません。「この調子で書いていく」という意味ですから前後から推測してください。

2.

上記 Seito2.java をつくり、コンパイルしてから実行して結果を確認しなさい。

ファイル名 Seito2.java

3.

上記 Goukei4.java をつくり、コンパイルしてから実行して結果を確認しなさい。

ファイル名 Goukei4.java


Javaプログラミング(Apr.2011)
聖愛中学高等学校
http://www.seiai.ed.jp/
Aug.2003 初稿? Jun.23.2009 更新 Sep.2.2011 更新