目次
equals メソッドのオーバーライド
Java練習問題 第17回では「equals メソッドのオーバーライド」についての問題を用意してあります。
問題 1 難易度 ★★★
以下の手順に従ってプログラムを作成してください。
①Carクラスを作成し、int 型のフィールド number と、String 型のフィールド color を定義してください。
上記のフィールドはカプセル化をしたうえで、アクセサメソッドを用意してください。
Car クラスに適切な equals オーバーライドを記述してください。(車は車体色が変わっても、ナンバーが同一ならば、同一車両とみなすこととします。)
② main メソッド内で、以下の 3 台の Car インスタンスを生成してください。
「number が 1111, color が blue」、
「number が 2222, color が green」、
「number が 1111, color が red」。
③ equals メソッドを用いて、3 台の車が同じかどうかを判断し、結果を出力してください。
実行例
car1 と car2 は違う車です
car1 と car3 は同じ車です
car2 と car3 は違う車です
問題 1 解答
正解は、、、
public class Main_1401 {
public static void main(String[] args) {
Car car1 = new Car();
car1.setNumber(1111);
car1.setColor("blue");
Car car2 = new Car();
car2.setNumber(2222);
car2.setColor("green");
Car car3 = new Car();
car3.setNumber(1111);
car3.setColor("red");
if (car1.equals(car2)) {
System.out.println("car1 と car2 は同じ車です");
} else {
System.out.println("car1 と car2 は違う車です");
}
if (car1.equals(car3)) {
System.out.println("car1 と car3 は同じ車です");
} else {
System.out.println("car1 と car3 は違う車です");
}
if (car2.equals(car3)) {
System.out.println("car2 と car3 は同じ車です");
} else {
System.out.println("car2 と car3 は違う車です");
}
}
}
class Car {
public int number;
public String color;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Car other = (Car) obj;
if (number != other.number) {
return false;
}
return true;
}
}
Java練習問題 第19回では「例外処理」から出題します。
[ Java練習問題 ] 練習問題 第17回 『toString メソッドのオーバーライド』 【toString メソッドのオーバーライド】 Java練習問題 第17回では「toString メソッドのオーバーライド」についての問題を用意してあります。 問題 1 難易度 ★★ 以下の…
[ Java練習問題 ] 練習問題 第19回 『例外処理』 【例外処理】 Java練習問題 第19回では「例外処理」についての問題を用意してあります。「例外処理」の解説はこちら 問題 1 難易度 ★★★ 下記のコードは入寮くされた整数…
(Visited 195 times, 1 visits today)
コメント