現在継承を使ったプログラムを書いています。
そこで変な値(今回の場合 先生なので年齢が20以下)だと「値がおかしいです。入力しなおしてください」というエラー文を出したいのですがエラー文が出てくれません。
どのように書き換えたらいいか教えてくださるとありがたいです。
最初に「人間」のクラスです。
Java
1public class Person { 2 private String name; 3 private int age; 4 private double height; 5 private double weight; 6 private int shoes; 7 private String subject; 8 9 public String getName() { 10 return this.name; 11 } 12 13 public int getAge() { 14 return this.age; 15 } 16 17 public double getHeight() { 18 return this.height; 19 } 20 21 public double getWeight() { 22 return this.weight; 23 } 24 25 public int getShoes() { 26 return this.shoes; 27 } 28 29 public String getSubject() { 30 return this.subject; 31 } 32 33 public void setName(String name) { 34 this.name = name; 35 } 36 37 public void setAge(int age2) { 38 if(age2>20) { 39 this.age=age2; 40 }else { 41 System.out.println("Error"); 42 } 43 } 44 45 public void setHeight(double height) { 46 this.height = height; 47 } 48 49 public void setWeight(double weight) { 50 this.weight=weight; 51 } 52 53 public void setShoes(int shoes) { 54 this.shoes = shoes; 55 } 56 57 public void setSubject(String subject) { 58 this.subject = subject; 59 } 60 61 Person(String name,int age2,double height,double weight,int shoes, String subject){ 62 this.name = name; 63 this.age=age2; 64 this.height = height; 65 this.weight = weight; 66 this.shoes = shoes; 67 this.subject = subject; 68 } 69 70 public void printData() { 71 System.out.println("名前は"+this.name+"です"); 72 System.out.println("年齢は"+this.age+"です"); 73 System.out.println("身長は"+this.height+"cmです"); 74 System.out.println("体重は"+this.weight+"kgです"); 75 System.out.println("買った靴は"+this.shoes+"足です"); 76 System.out.println("担当科目は"+this.subject+"です"); 77 } 78 79} 80
次に「先生」のクラスです。
Java
1class Teacher extends Person { 2 private String subject; 3 4 5 public String getSubject() { 6 return this.subject; 7 } 8 9 public void setSubject(String subject) { 10 this.subject = subject; 11 } 12 13 Teacher(String name, int age, double height, double weight, int shoes, String subject) { 14 super(name, age, height, weight, shoes, subject); 15 // TODO 自動生成されたコンストラクター・スタブ 16 } 17 18 public void printData() { 19 super.printData(); 20 } 21 22 23} 24
そしてこれがメインクラスです。
Java
1public class Proj9 { 2 3 4 protected String name; 5 protected int age; 6 protected double height; 7 protected double weight; 8 protected int shoes; 9 protected String subject; 10 /** 11 * @param args 12 */ 13 public static void main(String[] args) { 14 // TODO 自動生成されたメソッド・スタブ 15 Teacher teacher1 = new Teacher("ロビンソン",2,189.9,81.3,67,"英語"); 16 teacher1.printData(); 17 18 } 19 20} 21
現在Eclipse上ではエラーは特に出ていません。ただ20歳以下の値を入力してもエラーが出ない状態です。少し長くなってしまってすいません。
Eclipseタグは質問の内容とは無関係なので削除してください。
回答4件
あなたの回答
tips
プレビュー