/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 018 オブジェクト指向の深化(オブジェクトの比較とハッシュコーディング) 023 問題 | Javaドリル

018 オブジェクト指向の深化(オブジェクトの比較とハッシュコーディング) 023 問題

018-023 018 オブジェクト指向の深化

問題

以下の Book クラスがあります。このクラスは書籍を表現しています。equals メソッドと hashCode メソッドを適切に実装してください。

import java.util.Objects;

public class Book {
    private String title;
    private String author;
    private int year;

    // コンストラクタやゲッター、セッターなどは省略

    // equals メソッドと hashCode メソッドを実装
}

ヒント

equals メソッドは、2つのオブジェクトが等しいかどうかを判断するために使用されます。以下の基本的なステップに従って equals メソッドを実装できます。

  1. パラメータとして渡されたオブジェクトが、this オブジェクトと同じインスタンスであるかを確認します。
  2. パラメータが null でないことを確認します。
  3. パラメータが同じクラスのインスタンスであることを確認します。
  4. インスタンス変数ごとに、その値が等しいかどうかを比較します。

Objects.equals メソッドを使用して、null を考慮した等価性の比較を行うことができます。

hashCode メソッドは、等しいと判断されるオブジェクトに対して同じハッシュコードを生成する必要があります。以下の基本的なステップに従って hashCode メソッドを実装できます。

  1. int 型の変数を初期化します(通常は result と呼ばれます)。
  2. 各インスタンス変数のハッシュコードを計算し、result に組み込みます。
  3. 最終的な result を返します。

これらのステップに従って、Book クラスの equals メソッドと hashCode メソッドを実装してみてください。

→解答例

「018 オブジェクト指向の深化」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

コメント

タイトルとURLをコピーしました