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

点数を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;
    }
}

メソッド(関数)を使う

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

ファイル名 Goukei8.java

public class Goukei8 { 
    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() );
    }
}

配列と組み合わせて使う

Goukei7.java をこのメソッド(関数)を使って書き直したプログラムです。

ファイル名 Goukei9.java

public class Goukei9 { 
    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() );
       }
    }
}

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

U:\user\java> java Goukei9
岩井 亜紀 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
もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified