2016-04-13 40 views
0

私は完全に迷っているので、これについていくつかの助けが必要です。私は別のクラスで作成したメソッドを呼び出して、ユーザーが入力した平均のグレードを出力するようにしようとしていますが、どこが乱れているのかわかりません。私は他のクラスを呼び出す方法がわかりませんが、変数としてオブジェクトを使用することはJavaでは動作しませんが、他のクラスのメソッドを適用するには他の方法正しい等級を与える。Javaでセッターとゲッターを使って別のクラスのメソッドを呼び出す

変数newScoreはかなりAssignmentオブジェクトであるのでここでは...

public class Assignment { 

    private double score; 

    public double getScore(){ 
     return score; 
    } 
    public void setScore(double newScore){ 
     score = newScore; 
    } 

    public static void newScore(double a, double b, double c, double d, double f) { 

     double score1 = a; 
     double score2 = b; 
     double score3 = c; 
     double score4 = d; 
     double score5 = f; 

     if (score1 >= 90) { 
      System.out.println("Your grade is: " + score1); 
      System.out.println("Great job!"); 
     } else if (score2 >= 80 && score2 < 90) { 
      System.out.println("Your grade is: " + score2); 
      System.out.println("Not bad!"); 
     } else if (score3 >= 70 && score3 < 80) { 
      System.out.println("Your grade is: " + score3); 
      System.out.println("Need a little work"); 
     } else if (score4 >= 60 && score4 < 70) { 
      System.out.println("Your grade is: " + score4); 
      System.out.println("Not looking so good."); 
     } else if (score5 >= 50 && score5 < 60) { 
      System.out.println("Your grade is: " + score5); 
      System.out.print("Study harder!"); 
     } else { 
      System.out.println("Yikes!"); 
     } 
    } 
} 

そして、ここで私は、mainメソッドに入れたものだ....メソッドを含むクラスです

import java.util.Scanner; 

public class Grades { 

    public static void main(String[] args) {    
     Scanner input = new Scanner(System.in); 
     Assignment newScore = new Assignment();  
     System.out.println("Enter your test score: "); 
     newScore = input.nextDouble(); 
     System.out.println("Your current grade is: " + newScore);  
    } 

} 
+0

スコアアトリビュートをすべて設定することはできません – Jois

+0

どのメソッドにコールしますか?そして、 'Assignment.newScore(1,2,3,4,5);' –

+0

newScoreはintに割り当てることができないオブジェクトです – Jois

答えて

0

doubleより、コードnewScore = input.nextDouble();はコンパイルできません。次の行は、これら2本のラインを交換しているかどうかを確認親切

System.out.println("Your current grade is: " + newScore.getScore());

する必要があります私はあなたのscoreとして入力番号を使用していると仮定し、そのためのラインは、したがって

newScore.setScore(input.nextDouble());

する必要がありますお客様の要件に合ったスイートです。

EDIT:

Assignment.java

public class Assignment { 

    private double score; 

    public double getScore(){ 
     return score; 
    } 
    public void setScore(double newScore){ 
     score = newScore; 
    } 

    public void checkScore(double a, double b, double c, double d, double f) { 
     if (score >= a) { 
      System.out.println("Your grade is: " + score); 
      System.out.println("Great job!"); 
     } else if (score >= b && score < a) { 
      System.out.println("Your grade is: " + score); 
      System.out.println("Not bad!"); 
     } else if (score >= c && score < b) { 
      System.out.println("Your grade is: " + score); 
      System.out.println("Need a little work"); 
     } else if (score >= d && score < c) { 
      System.out.println("Your grade is: " + score); 
      System.out.println("Not looking so good."); 
     } else if (score >= f && score < d) { 
      System.out.println("Your grade is: " + score); 
      System.out.print("Study harder!"); 
     } else { 
      System.out.println("Yikes!"); 
     } 
    } 
} 

Grades.java

import java.util.Scanner; 

public class Grades { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     Assignment newScore = new Assignment(); 
     System.out.println("Enter your test score: "); 
     newScore.setScore(input.nextDouble()); 
     newScore.checkScore(90, 80, 70, 60, 50); 
     System.out.println("Your current grade is: " + newScore.getScore()); 
    } 

} 
+0

それはエラーを取り除きましたが、私が探していたものを抜かなかったのです。私たちはセッターとゲッターとこの課題に取り組むことになっています。彼らはプライベートダブルスコアの変数を作成するように求めました。セッターとゲッターを作成してスコアを保持しますが、ユーザーがスコアを入力した後にグレードがa、b、c、d、fかどうかを判断する方法です。私はちょうどそれを正確に引き出す方法に迷っています。私はsetterとgetterを使用し、それらの値を設定しますが、複数のオプションを選択するときにどのように使用するかはわかりません。 – Nooberistic

+0

元のメソッド 'newScore'を使ってグレードが' a'、 'b'、' c'、 'd'、' f'であることを確認する必要があるので、そのメソッドを修正しました。この方法は、スコアがどの間隔にあるかを決定するために使用され、間隔はその方法のパラメータによって決定される。私は 'a'、' b'、 'c'、' d'、 'f'がそれぞれ90,80,70,60,50のテストケースを追加しました。私が更新したコードを試して、あなたのフィードバックをお聞かせください。 @ Nooberistic –

0

かなりここにあなたの質問を理解しないでください。あなたは複数のスコアを取るメソッドを持っていて、それにはif-elseステートメントのセットがあり、それを基にして印刷するメッセージを決定します。

最初のスコアが90を超える場合、これは となり、最初のスコアの条件が満たされない場合は、2番目のスコア値をチェックします。 2番目の条件が満たされていない場合は、3番目のスコアをチェックして特定のスコアを満たしているかどうかを確認してください。

割り当てクラスを持って、これを行う;

割り当てクラスを変更するのは、一度に複数のスコアを保持できるようにすることです。複数のスコアを保持できるようにするには、スコア変数を少なくとも配列またはリストに変更する必要があります。それはその後、出力にスコアを反復処理するために、適切なをループを使用し、「addScore(ダブルスコア)」あなた「newScore」方法では

public void addScore(double score) { 
    scores.add(score) 
} 

のようなものにするためにsetterメソッドを変更し、List<Double> scores = new ArrayList<Double>();

です各課題のスコアメッセージ。

for (Double score : scores) { 
    if (score > 90) { 
     System.out.println('blah'); 
    } 
} 

は、上記のコードを注意してください、私は私の心をオフに入力するだけで何かしているあなたには、いくつかの構文エラーに手直しする必要がありますので、私は、任意のコンパイラを使用して、それをテストしていません。

+0

私たちはセッターとゲッターをこの課題に取り組むことになっています。彼らはプライベートダブルスコアの変数を作成するように求めました。セッターとゲッターを作成してスコアを保持しますが、ユーザーがスコアを入力した後にグレードがa、b、c、d、fかどうかを判断する方法です。私はちょうどそれを正確に引き出す方法に迷っています。私はsetterとgetterを使用し、それらの値を設定しますが、複数のオプションを選択するときにどのように使用するかはわかりません。 – Nooberistic

関連する問題