Lesson11_4.javaは,String型の配列namesに格納された名前とint型の配列agesに格納された年齢をUserクラスのインスタンス属性name,ageにそれぞれ代入して表示するプログラムです.Userクラスの各属性に対するsetterメソッドでは代入する値が妥当な値かを調べる処理を行います.属性nameのsetterは,代入する文字列が1文字以下または8文字以上である場合に,例外NameOutOfBoundsExceptionを発生させます.属性ageのsetterは,代入する整数が0未満または120よりも大きい場合に,例外AgeOutOfBoundsExceptionを発生させます.NameOutOfBoundsExceptionとAgeOutOfBoundsExceptionは,Exceptionクラスを継承したオリジナルの例外クラスです,これらの例外のtry-catch処理は,Lesson114.javaのmainメソッド内で行います.以下の出力結果が得られるようにNameOutOfBoundsException.javaとAgeOutOf-BoundsException.javaを作成し,User.javaにsetterを追加してください.Lesson114.javaは変更しないこと
$ javac Lesson11_4.java
$ java Lesson11_4
名前:ヒロ,年齢:18
NameOutOfBoundsException:設定できない名前です:ア
NameOutOfBoundsException:設定できない名前です:ルイス・イ・ピカソ
AgeOutOfBoundsException:設定できない年齢です:200
AgeOutOfBoundsException:設定できない年齢です:-1
public class Lesson11_4 {
public static void main (String[] args) {
String[] names = {"ヒロ", "ア", "ルイス・イ・ピカソ", "ヤマダ", "タロウ"};
int[] ages = {18, 25, 20, 200, -1};
User u = new User();
for (int i = 0; i < names.length; i++) { try { u.setName(names[i]); u.setAge(ages[i]); System.out.println("名前:" + u.getName() + ", 年齢:" + u.getAge()); } catch (NameOutOfBoundsException e) { System.out.println(e); } catch (AgeOutOfBoundsException e) { System.out.println(e); } }
}
}
public class User {
private String name;
private int age;
public User() {
this.name = "名無し";
this.age = 0;
}
// ============= ここに記述 ==============
// =====================================
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
}
他力本願になってしまうのはほんとに申し訳ないのですが、いろいろ調べてもわかりません。
教えていただけないでしょうか。。。