前提・実現したいこと
javaの課題で、カプセル化のプログラミングを作っているのですが、メソッドをうまく参照できません。
下記が課題文です。
***
成績を表現するクラスGradeをカプセル化の定石に従った上で作成してください。
属性は名前(name)、得点(score)を持ちます。
コンストラクタは以下を定義してください。 - 引数として名前、得点を指定 - 引数を指定しない場合にはインスタンス化することはできない
メソッドは成績を判定する「judge()」を持ち、引数はなしで、戻り値は成績(AA〜C又は不合格)です。得点が90以上はAA、80以上はA、70以上はB、60以上はC、60未満は不可とします。
Gradeクラスの定義が完了したら、mainメソッドを持つMainクラスで、以下のデータを使った実行結果と同じになるよう処理を作成してください。
伊藤 60
鈴木 88
佐藤 40
中山 74
池田 95
池山 80
【実行結果】
伊藤:C
鈴木:A
佐藤:不可
中山:B
池田:AA
池山:A
発生している問題
成績をAA~不可で表示させたいのですが、そのまま数字で表示されてしまいます。 伊藤:60 鈴木:88 佐藤:40 中山:74 池田:95 池山:80
該当のソースコード
package kadai10_7; public class Grade { private String name; private int score; private String grade; public Grade(String name,int score) { this.name=name; this.score=score; } void judge(){ if(score>=90) { grade="AA"; }else if(score>=80){ grade="A"; }else if(score>=70) { grade="B"; }else if(score>=60) { grade="C"; }else { grade="不可"; } } String getName() { return name; } int getScore() { return score; } void setName() { this.name=name; } void setScore() { this.score=score; } }
package kadai10_7; public class Main { public static void main(String[] args) { Grade grade1=new Grade("伊藤",60); Grade grade2=new Grade("鈴木",88); Grade grade3=new Grade("佐藤",40); Grade grade4=new Grade("中山",74); Grade grade5=new Grade("池田",95); Grade grade6=new Grade("池山",80); grade1.judge(); grade2.judge(); grade3.judge(); grade4.judge(); grade5.judge(); grade6.judge(); System.out.println(grade1.getName()+":"+grade1.getScore()); System.out.println(grade2.getName()+":"+grade2.getScore()); System.out.println(grade3.getName()+":"+grade3.getScore()); System.out.println(grade4.getName()+":"+grade4.getScore()); System.out.println(grade5.getName()+":"+grade5.getScore()); System.out.println(grade6.getName()+":"+grade6.getScore()); } }
教科書や入門書、いろんなサイトも見たのですが、まだカプセル化や色々なことが理解できていないと思います。見当違いなコードを書いてるかもしれません。ご教授いただければ幸いです。
###追記
回答ありがとうございます!
下記のように直しましたが、まだ数値のまま表示されてしまいます。
String judge(){ if(score>=90) { grade="AA"; }else if(score>=80){ grade="A"; }else if(score>=70) { grade="B"; }else if(score>=60) { grade="C"; }else { grade="不可"; } return grade; }
回答3件
あなたの回答
tips
プレビュー