[ Java練習問題 ] 練習問題 第18回 『equals メソッドのオーバーライド』

目次

equals メソッドのオーバーライド

Java練習問題 第17回では「equals メソッドのオーバーライド」についての問題を用意してあります。

問題 1 難易度 ★★★

① Car クラスを以下のように定義してください。
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回では「例外処理」から出題します。

(Visited 112 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次