-3

get/set プログラムがあり、平均結果を取得しようとしていますが、代わりに常に 0.0 を取得します。

  • プログラムには 5 つのインスタンスがあり、それぞれに 1 つの return メソッドがあります
  • メインには2つのユーザー入力と3つのグレード番号があります

アカウント クラス:

public class Account {
    private String name1;
    private String name2;
    private double grade1;
    private double grade2;
    private double grade3;
    private double average;

    public Account(String a1, String a2, double b1, double b2, double b3) {
        name1 = a1;
        name2 = a2;
        grade1 = b1;
        grade2 = b2;
        grade3 = b3;
    }

    public void setName1(String a1) {
        name1 = a1;
    }

    public void setName2(String a2) {
        name2 = a2;
    }

    public void setGread1(double b1) {
        grade1 = b1;
    }

    public void setGread2(double b2) {
        grade2 = b2;
    }

    public void setGread3(double b3) {
        grade3 = b3;
    }

    public String getName1() {
        return name1;
    }

    public String getName2() {
        return name2;
    }

    public double getgrade1() {
        return grade1;
    }

    public double getgrade2() {
        return grade2;
    }

    public double getgrade3() {
        return grade3;
    }

    public void setAverage(double ave) {
        average = ave;
    }

    public double getAverage() {
        return average = (grade1 + grade2 + grade3) / 3;
    }

    public String toString() {
        return String.format("%-5s %2s the average is: %5s%% ", name1, name2,
                average);
    }
}

主な方法:

public static void main(String[] args) {
    Scanner in = new Scanner (System.in);

    System.out.println("Enter the  frist  and last name of student" );

    String inf=in.nextLine();
    String infs=in.nextLine();

    Account account= new Account(inf,infs,5,6,7);    
    System.out.print(account);
}

私はそれを解決しようとするのにうんざりしているので、助けてください。

4

2 に答える 2

0

コンストラクターで既に初期化を行っている場合、ゲッターとセッターの使用法は何ですか。

とにかく、あなたの公衆 Account(String a1 ,String a2 ,double b1,double b2,double b3)

次のようになります。

public  Account(String a1 ,String a2 ,double b1,double b2,double b3) {

name1=a1;
name2=a2;
grade1=b1;
grade2=b2;
grade3=b3;
average=getAverage();

}

@Reimeusが示唆しているように、に値を割り当てることはありませんaverage

于 2013-01-26T12:19:58.900 に答える
0

に値を割り当てないaverageため、デフォルト値の を保持します0.0。この課題を次から移動getAverage

average = (grade1 + grade2 + grade3) / 3;

あなたのコンストラクタに。通常、ゲッターとセッターには、このタイプのロジックは含まれていません。

于 2013-01-26T11:48:57.883 に答える