/** * ドメイン非依存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); 問題 | Javaドリル https://minner.asia 楽々学べるJavaの問題集 Fri, 05 Sep 2025 02:11:05 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://minner.asia/wp-content/uploads/2023/10/cropped-logo-32x32.png 問題 | Javaドリル https://minner.asia 32 32 014 継承(オブジェクトクラスの継承) 039 問題 https://minner.asia/archives/3377 https://minner.asia/archives/3377#respond Wed, 06 Dec 2023 22:51:57 +0000 http://localhost/?p=3377

問題

Bookクラスを作成し、ObjectクラスのhashCodeメソッドをオーバーライドして、Bookオブジェクトのハッシュコードを適切に計算するようにしてください。

ヒント

  1. 重要なフィールドの組み合わせ: hashCode を計算する際に、クラスの重要なフィールドを組み合わせます。同じ値を持つオブジェクトは同じハッシュコードを持つようにします。
  2. 各フィールドのハッシュコード取得: 各フィールドのハッシュコードを取得し、これらの値を組み合わせて全体のハッシュコードを生成します。
  3. null チェック: フィールドが null の場合に備えて、Objects.hash などを使用してハッシュコードを計算します。これにより、null フィールドがあっても正しくハッシュコードを計算できます。

「ハッシュコード」とは?

ハッシュコード(Hash Code)は、データ(通常はオブジェクト)を一定の長さの数値で表現する手法の一つです。これにより、データを高速かつ効率的に識別できるようになります。ハッシュコードは、ハッシュ関数によって計算され、通常は固定長のビット列(整数)として表現されます。

ハッシュコードの主な特徴は以下です:

  1. 一意性ではない: 異なるデータが同じハッシュコードを持つことがあります。これをハッシュコードの衝突と呼びます。ただし、優れたハッシュ関数は異なるデータが同じハッシュコードを持つ確率を最小限に抑えます。
  2. 同じデータは常に同じハッシュコード: 同じデータに対しては常に同じハッシュコードが生成されるようになっています。これが保証されない場合、ハッシュテーブルなどのデータ構造が正しく動作しません。
  3. 高速性: ハッシュコードは高速に計算できる必要があります。オブジェクトの識別やデータの検索など、多くのアルゴリズムでハッシュコードが使用されるため、高速な計算が求められます。

Javaにおいては、hashCode メソッドがオブジェクトのハッシュコードを提供します。このメソッドをオーバーライドすることで、特定のクラスのハッシュコードの生成方法をカスタマイズできます。ハッシュコードは主にハッシュテーブル、ハッシュセット、ハッシュマップなどのデータ構造で使用され、オブジェクトを一意に識別するために利用されます。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3377/feed 0
014 継承(オブジェクトクラスの継承) 038 問題 https://minner.asia/archives/3370 https://minner.asia/archives/3370#respond Wed, 06 Dec 2023 22:39:30 +0000 http://localhost/?p=3370

問題

Personクラスを作成し、Objectクラスのequalsメソッドをオーバーライドして、Personオブジェクト同士が同じ名前と年齢を持つ場合にtrueを返すようにしてください。

ヒント

  1. equals メソッドの引数が null でないことを確認します。
  2. 引数が同じオブジェクトへの参照であるかどうかを確認します。もし同じオブジェクトへの参照であれば true を返します。
  3. 引数が比較対象と同じクラスであるか確認します。もし異なるクラスであれば false を返します。
  4. 引数のフィールドと比較対象のフィールドが等しいか確認します。この際、フィールドがプリミティブ型であれば == 演算子で比較し、オブジェクト型であれば equals メソッドを使用します。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3370/feed 0
014 継承(オブジェクトクラスの継承) 037 問題 https://minner.asia/archives/3362 https://minner.asia/archives/3362#respond Wed, 06 Dec 2023 22:19:17 +0000 http://localhost/?p=3362

問題

MyObjectクラスを作成し、ObjectクラスのtoStringメソッドをオーバーライドして、「This is a MyObject」などの適切な文字列を返すようにしてください。

ヒント

MyObjectクラスを作成し、ObjectクラスのtoStringメソッドをオーバーライドします。オーバーライドする際には、適切な文字列を返すようにします。toStringメソッドは、オブジェクトを文字列に変換する際に呼び出されるメソッドで、オーバーライドすることで、System.out.printlnなどでオブジェクトを出力したときに自分が期待する形式で表示されるようになります。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3362/feed 0
014 継承(finalメソッド) 036 問題 https://minner.asia/archives/3351 https://minner.asia/archives/3351#respond Wed, 06 Dec 2023 22:03:51 +0000 http://localhost/?p=3351

問題

final修飾子を使用して、connect メソッドを持つ DatabaseConnection クラスを作成してください。このメソッドはデータベースへの接続を確立します。
DatabaseConnection クラスを継承したサブクラスを作成し、connect メソッドをオーバーライドして新しい接続手法を追加してみてください。ただし、connect メソッドがfinal修飾子を持つため、サブクラスでの変更が制限されます。

ヒント

  1. final修飾子を使用してDatabaseConnectionクラスを宣言します。
  2. DatabaseConnectionクラスにconnectメソッドを追加し、データベースへの接続を確立するように実装します。
  3. DatabaseConnectionクラスを継承したサブクラスを作成します。
  4. サブクラスでconnectメソッドをオーバーライドし、新しい接続手法を追加しようとします。ただし、connectメソッドがfinal修飾子を持つため、オーバーライドが制限されます。(コンパイルエラーを避けるためconnectメソッドはコメントアウトしてください)

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3351/feed 0
014 継承(finalメソッド) 035 問題 https://minner.asia/archives/3339 https://minner.asia/archives/3339#respond Wed, 06 Dec 2023 01:39:11 +0000 http://localhost/?p=3339

問題

final修飾子を使用して、calculateArea メソッドを持つ Shape クラスを作成してください。このメソッドは各形状に固有の面積を計算し、戻り値として返します。
Shape クラスを継承した異なる形状を表すサブクラスを作成し、calculateArea メソッドをオーバーライドして新しい計算方法を追加してみてください。しかし、calculateArea メソッドがfinal修飾子を持つため、サブクラスでの変更が禁止されます。

ヒント

final修飾子を使用してcalculateAreaメソッドを持つShapeクラスを作成すると、このメソッドはオーバーライドが禁止されます。サブクラスで新しい計算方法を追加しようとすると、コンパイルエラーが発生します。

Shapeクラスの作成:
Shapeクラスにfinal修飾子を使用してcalculateAreaメソッドを作成します。
calculateAreaメソッド内で、各形状に固有の面積を計算し戻り値として返します。

サブクラスの作成:
Shapeクラスを継承したサブクラスを作成します。
サブクラスでcalculateAreaメソッドをオーバーライドしようとすると、コンパイルエラーが発生します。(calculateAreaメソッドをオーバーライドし、コメントアウトしてください)

これにより、calculateAreaメソッドがfinal修飾子を持つため、サブクラスでの変更が禁止されます。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3339/feed 0
014 継承(finalメソッド) 034 問題 https://minner.asia/archives/3330 https://minner.asia/archives/3330#respond Wed, 06 Dec 2023 01:11:36 +0000 http://localhost/?p=3330

問題

final修飾子を使用して、displayInfo メソッドを持つ Person クラスを作成してください。このメソッドは「個人情報を表示します」と表示します。
Person クラスを継承したサブクラスを作成し、displayInfo メソッドをオーバーライドして新しい表示内容を追加してみてください。この際、displayInfo メソッドがfinal修飾子を持つため、サブクラスでの変更が制限されます。

ヒント

  1. final修飾子を使用してPersonクラスを宣言します。
  2. PersonクラスにdisplayInfoメソッドを追加し、「個人情報を表示します」と表示するように実装します。
  3. Personクラスを継承したサブクラスを作成します。
  4. サブクラスでdisplayInfoメソッドをオーバーライドし、新しい表示内容を追加しようとします。ただし、displayInfoメソッドがfinal修飾子を持つため、オーバーライドが制限されます。
    (オーバーライドしたdisplayInfoメソッドはコメントアウトしてください)

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3330/feed 0
014 継承(明示的なスーパークラスのメソッド呼び出し) 033 問題 https://minner.asia/archives/3322 https://minner.asia/archives/3322#respond Tue, 05 Dec 2023 23:57:52 +0000 http://localhost/?p=3322

問題

User クラスには displayInfo メソッドがあり、「ユーザー情報を表示します」と表示されます。このクラスを継承した Admin クラスを作成し、displayInfo メソッドをオーバーライドして、「管理者情報を表示します」と表示します。ただし、Admin クラスでは親クラスの displayInfo メソッドも呼び出してください。

ヒント

  1. User クラスを作成し、displayInfo メソッドを定義します。このメソッドは「ユーザー情報を表示します」と表示する内容とします。
  2. Admin クラスを作成し、User クラスを継承します。
  3. Admin クラス内で、displayInfo メソッドをオーバーライドします。オーバーライドしたメソッド内で、super.displayInfo() を呼び出して親クラスのメソッドを実行します。

これにより、Admin クラスの displayInfo メソッド内で、「ユーザー情報を表示します」と「管理者情報を表示します」が順番に表示されるようになります。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3322/feed 0
014 継承(明示的なスーパークラスのメソッド呼び出し) 032 問題 https://minner.asia/archives/3314 https://minner.asia/archives/3314#respond Tue, 05 Dec 2023 23:45:11 +0000 http://localhost/?p=3314

問題

Shape クラスには draw メソッドがあり、「形状を描きます」と表示されます。このクラスを継承した Circle クラスを作成し、draw メソッドをオーバーライドして、「円を描きます」と表示します。ただし、Circle クラスでは親クラスの draw メソッドも呼び出してください。

ヒント

  1. Shape クラスには draw メソッドがあり、「形状を描きます」と表示されます。
  2. Circle クラスを作成し、Shape クラスを継承します。
  3. Circle クラス内で draw メソッドをオーバーライドして、「円を描きます」と表示します。
  4. Circle クラスの draw メソッド内で、親クラスの draw メソッドを呼び出してください。

これにより、Circle クラスが draw メソッドを持ち、かつ親クラスの draw メソッドも呼び出されるようになります。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3314/feed 0
014 継承(明示的なスーパークラスのメソッド呼び出し) 031 問題 https://minner.asia/archives/3305 https://minner.asia/archives/3305#respond Tue, 05 Dec 2023 23:35:33 +0000 http://localhost/?p=3305

問題

Animal クラスには makeSound メソッドがあり、「動物が音を発します」と表示されます。このクラスを継承した Cat クラスを作成し、makeSound メソッドをオーバーライドして、「猫がにゃーと鳴きます」と表示します。ただし、Cat クラスでは親クラスの makeSound メソッドも呼び出してください。

ヒント

Javaでスーパークラスのメソッドをサブクラスで呼び出すには、super キーワードを使用します。これを利用して、Cat クラスの makeSound メソッド内でスーパークラスの同名メソッドを呼び出すことができます。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3305/feed 0
014 継承(明示的なスーパークラスのメソッド呼び出し) 030 問題 https://minner.asia/archives/3282 https://minner.asia/archives/3282#respond Tue, 05 Dec 2023 00:26:55 +0000 http://localhost/?p=3282

問題

Vehicle クラスには start メソッドがあり、「車両が始動しました」と表示されます。このクラスを継承した Car クラスを作成し、start メソッドをオーバーライドして、「車がエンジンをかけました」と表示します。ただし、Car クラスでは親クラスの start メソッドも呼び出してください。

ヒント

この問題では、Car クラスが Vehicle クラスを継承しており、start メソッドをオーバーライドする必要があります。同時に、Car クラス内で親クラスの start メソッドも呼び出す必要があります。

  1. Car クラスで Vehicle クラスを継承します。
  2. start メソッドをオーバーライドして、「車がエンジンをかけました」と表示します。
  3. 親クラスの start メソッドを呼び出すには、super.start() を使用します。

→解答例

「014 継承」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3282/feed 0