/** * ドメイン非依存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:08:15 +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 016 抽象クラス(ポリモーフィズムと抽象クラス) 013 問題 https://minner.asia/archives/3694 https://minner.asia/archives/3694#respond Tue, 12 Dec 2023 22:06:53 +0000 http://localhost/?p=3694

問題

抽象クラス Employee を定義し、calculateSalary という抽象メソッドを宣言します。
具象クラス Manager と Developer を作成し、Employee を拡張します。
Manager と Developer はそれぞれ calculateSalary メソッドをオーバーライドして、給与を計算します。
ポリモーフィズムを使用して、Employee 型の配列を作成し、異なる従業員の給与を表示します。

ヒント

  1. Employee クラスを抽象クラスとして定義します。このクラスには calculateSalary という抽象メソッドを宣言します。
  2. Manager クラスを作成し、Employee を拡張します。Manager クラスには給与に関する情報(例: 基本給とボーナス)が含まれます。calculateSalary メソッドをオーバーライドして、Manager の給与を計算します。
  3. 同様に、Developer クラスを作成し、Employee を拡張します。Developer クラスには給与に関する情報(例: 時給と勤務時間)が含まれます。calculateSalary メソッドをオーバーライドして、Developer の給与を計算します。
  4. Employee 型のリストを作成します。このリストには Manager インスタンスと Developer インスタンスが含まれます。
  5. ポリモーフィズムを使用して、Employee 型のリストの各要素にアクセスし、calculateSalary メソッドを呼び出して給与を表示します。

これにより、Manager および Developer の給与計算が、共通の Employee インターフェースを通じて処理されることになります。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3694/feed 0
016 抽象クラス(ポリモーフィズムと抽象クラス) 011 問題 https://minner.asia/archives/3677 https://minner.asia/archives/3677#respond Mon, 11 Dec 2023 23:20:32 +0000 http://localhost/?p=3677

問題

抽象クラス Animal を定義し、makeSound という抽象メソッドを宣言します。
具象クラス Dog と Cat を作成し、Animal を拡張します。
Dog と Cat はそれぞれ makeSound メソッドをオーバーライドして、吠え声と鳴き声を表示します。
ポリモーフィズムを使用して、Animal 型の配列を作成し、異なる種類の動物のサウンドを出力します。

ヒント

  1. 抽象クラス Animal の定義:
    • Animal クラスを作成し、makeSound という抽象メソッドを宣言します。このメソッドは動物の音を出力します。
  2. 具象クラス Dog と Cat の定義:
    • Dog クラスを作成し、Animal クラスを拡張します。makeSound メソッドをオーバーライドして、犬の吠え声を表示します。
    • 同様に、Cat クラスを作成し、Animal クラスを拡張します。makeSound メソッドをオーバーライドして、猫の鳴き声を表示します。
  3. ポリモーフィズムのデモ:
    • Animal 型の配列を作成し、その配列に Dog インスタンスと Cat インスタンスを格納します。
    • ループを使用して配列内の各要素にアクセスし、makeSound メソッドを呼び出して各動物の音を表示します。

これにより、抽象クラス、具象クラス、およびポリモーフィズムの概念を学ぶことができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3677/feed 0
016 抽象クラス(抽象メソッドと具象メソッド) 010 問題 https://minner.asia/archives/3655 https://minner.asia/archives/3655#respond Mon, 11 Dec 2023 22:30:19 +0000 http://localhost/?p=3655

問題

抽象クラス BankAccount を定義し、deposit(double amount) と withdraw(double amount) という抽象メソッドを宣言します。
具象クラス SavingsAccount と CheckingAccount を作成し、それぞれのメソッドを実装します。

ヒント

  1. 抽象クラス BankAccount の定義:
    • BankAccount クラスを作成し、deposit(double amount) と withdraw(double amount) という抽象メソッドを宣言します。
  2. 具象クラス SavingsAccount の作成:
    • SavingsAccount クラスを作成し、BankAccount クラスを継承します。
    • deposit(double amount) メソッドをオーバーライドして、預金の動作を実装します。
    • withdraw(double amount) メソッドをオーバーライドして、引き出しの動作を実装します。
  3. 具象クラス CheckingAccount の作成:
    • CheckingAccount クラスを作成し、BankAccount クラスを継承します。
    • deposit(double amount) メソッドをオーバーライドして、預金の動作を実装します。
    • withdraw(double amount) メソッドをオーバーライドして、引き出しの動作を実装します。
  4. テスト:
    • メインプログラムやテストクラスを作成して、SavingsAccount クラスと CheckingAccount クラスのメソッドが期待通りに機能するか確認します。

これによって、抽象クラスと具象クラスの関係や、抽象メソッドの実装に慣れることができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3655/feed 0
016 抽象クラス(抽象メソッドと具象メソッド) 009 問題 https://minner.asia/archives/3649 https://minner.asia/archives/3649#respond Mon, 11 Dec 2023 22:25:06 +0000 http://localhost/?p=3649

問題

calculateSalary() という抽象メソッドを宣言します。
具象クラス Manager と Developer を作成し、それぞれ calculateSalary() メソッドを実装します。

ヒント

  1. 抽象クラス Employee の定義:
    • Employee クラスを作成し、calculateSalary() という抽象メソッドを宣言します。
  2. 具象クラス Manager の作成:
    • Manager クラスを作成し、Employee クラスを継承します。
    • calculateSalary() メソッドをオーバーライドして、マネージャーの給与計算を行う実装を提供します。
  3. 具象クラス Developer の作成:
    • Developer クラスを作成し、Employee クラスを継承します。
    • calculateSalary() メソッドをオーバーライドして、開発者の給与計算を行う実装を提供します。
  4. テスト:
    • メインプログラムやテストクラスを作成して、Manager クラスと Developer クラスの calculateSalary() メソッドが期待通りに機能するか確認します。

これによって、抽象クラスと具象クラスの関係や、抽象メソッドの実装に慣れることができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3649/feed 0
016 抽象クラス(抽象メソッドと具象メソッド) 008 問題 https://minner.asia/archives/3643 https://minner.asia/archives/3643#respond Mon, 11 Dec 2023 22:18:53 +0000 http://localhost/?p=3643

問題

抽象クラス Vehicle を定義し、startEngine() という抽象メソッドを宣言します。
具象クラス Car と Motorcycle を作成し、それぞれ startEngine() メソッドを実装します。

ヒント

  1. 抽象クラス Vehicle の定義:
    • Vehicle クラスを作成し、startEngine() という抽象メソッドを宣言します。
  2. 具象クラス Car の作成:
    • Car クラスを作成し、Vehicle クラスを継承します。
    • startEngine() メソッドをオーバーライドして、車のエンジンを始動させる実装を提供します。
  3. 具象クラス Motorcycle の作成:
    • Motorcycle クラスを作成し、Vehicle クラスを継承します。
    • startEngine() メソッドをオーバーライドして、バイクのエンジンを始動させる実装を提供します。
  4. テスト:
    • メインプログラムやテストクラスを作成して、Car クラスと Motorcycle クラスの startEngine() メソッドが期待通りに機能するか確認します。

これによって、抽象クラスと具象クラスの関係や、抽象メソッドの実装に慣れることができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3643/feed 0
016 抽象クラス(抽象メソッドと具象メソッド) 007 問題 https://minner.asia/archives/3629 https://minner.asia/archives/3629#respond Mon, 11 Dec 2023 12:43:45 +0000 http://localhost/?p=3629

問題

抽象クラス Animal を定義し、makeSound() という抽象メソッドを宣言します。
具象クラス Dog と Cat を作成し、それぞれ makeSound() メソッドを実装します。

ヒント

  1. 抽象クラス Animal の定義:
    • Animal クラスを作成し、makeSound() という抽象メソッドを宣言します。
  2. 具象クラス Dog の作成:
    • Dog クラスを作成し、Animal クラスを継承します。
    • makeSound() メソッドをオーバーライドして、犬の鳴き声を出力する実装を提供します。
  3. 具象クラス Cat の作成:
    • Cat クラスを作成し、Animal クラスを継承します。
    • makeSound() メソッドをオーバーライドして、猫の鳴き声を出力する実装を提供します。
  4. テスト:
    • メインプログラムやテストクラスを作成して、Dog クラスと Cat クラスの makeSound() メソッドが期待通りに機能するか確認します。

これによって、抽象クラスと具象クラスの関係や、抽象メソッドの実装に慣れることができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3629/feed 0
016 抽象クラス(抽象メソッドと具象メソッド) 006 問題 https://minner.asia/archives/3622 https://minner.asia/archives/3622#respond Mon, 11 Dec 2023 12:33:55 +0000 http://localhost/?p=3622

問題

抽象クラス Shape を定義し、calculateArea() という抽象メソッドを宣言します。
具象クラス Circle と Rectangle を作成し、それぞれ calculateArea() メソッドを実装します。

ヒント

  1. 抽象クラス Shape の定義:
    • Shape クラスを作成し、calculateArea() という抽象メソッドを宣言します。このメソッドは図形の面積を計算するためのものです。
  2. 具象クラス Circle の作成:
    • Circle クラスを作成し、Shape クラスを継承します。
    • calculateArea() メソッドをオーバーライドして、円の面積を計算する実装を提供します。
  3. 具象クラス Rectangle の作成:
    • Rectangle クラスを作成し、Shape クラスを継承します。
    • calculateArea() メソッドをオーバーライドして、長方形の面積を計算する実装を提供します。
  4. テスト:
    • メインプログラムやテストクラスを作成して、Circle クラスと Rectangle クラスの calculateArea() メソッドが期待通りに機能するか確認します。

この手順に従って問題に取り組むことで、抽象クラスと具象クラスの関係や、抽象メソッドの実装に慣れることができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3622/feed 0
016 抽象クラス(基本概念) 005 問題 https://minner.asia/archives/3613 https://minner.asia/archives/3613#respond Sun, 10 Dec 2023 22:44:37 +0000 http://localhost/?p=3613

問題

抽象クラス BankAccount を定義し、その中に deposit(double amount) と withdraw(double amount) という抽象メソッドを宣言します。この抽象クラスを継承する具象クラス SavingsAccount と CheckingAccount を作成し、それぞれのメソッドを実装して、預金と引き出しの動作を模倣するプログラムを完成させてください。

ヒント

理解を深めるために、手順を考えてみましょう。

  1. 抽象クラス BankAccount:
    • BankAccount クラスを抽象クラスとして定義します。
    • deposit(double amount) と withdraw(double amount) という抽象メソッドを宣言します。
  2. 具象クラス SavingsAccount:
    • SavingsAccount クラスを作成し、BankAccount クラスを継承します。
    • deposit(double amount) と withdraw(double amount) メソッドをオーバーライドして実装します。預金と引き出しの具体的な動作を提供します。
  3. 具象クラス CheckingAccount:
    • CheckingAccount クラスを作成し、BankAccount クラスを継承します。
    • 同様に deposit(double amount) と withdraw(double amount) メソッドをオーバーライドして実装します。
  4. プログラムの完成:
    • BankAccount クラスのインスタンスを作成し、それを利用して SavingsAccount および CheckingAccount の動作をテストします。

これらの手順に従って、抽象クラス BankAccount を拡張する具象クラス SavingsAccount および CheckingAccount を作成し、預金と引き出しの動作を模倣するプログラムを完成させることができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3613/feed 0
016 抽象クラス(基本概念) 004 問題 https://minner.asia/archives/3607 https://minner.asia/archives/3607#respond Sun, 10 Dec 2023 22:36:37 +0000 http://localhost/?p=3607

問題

既存の抽象クラス Person があります。このクラスに displayInfo() という抽象メソッドを追加し、それを実装する具象クラス Student を作成してください。また、displayInfo() メソッドで学生の情報を表示するプログラムを作成してみてください。

ヒント

理解を深めるためにコードを自分で書く前に、手順を考えてみましょう。

  1. 抽象クラス Person:
    • 既存の抽象クラス Person に displayInfo() という抽象メソッドを追加します。このメソッドは学生の情報を表示するためのものです。
  2. 具象クラス Student:
    • Student クラスを作成し、Person クラスを継承します。
    • displayInfo() メソッドをオーバーライドして、学生の情報を表示する実装を提供します。
  3. プログラムの完成:
    • Student クラスのインスタンスを作成し、displayInfo() メソッドを呼び出して学生の情報を表示します。

これらの手順に従ってプログラムを完成させると、抽象クラスに抽象メソッドを追加し、それを実装する具象クラスを作成するプロセスを学ぶことができます。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/3607/feed 0
016 抽象クラス(基本概念) 003 問題 https://minner.asia/archives/3599 https://minner.asia/archives/3599#respond Sun, 10 Dec 2023 22:27:07 +0000 http://localhost/?p=3599

問題

抽象クラス Vehicle を定義し、その中に抽象メソッド startEngine() を宣言します。この抽象クラスを継承する具象クラス Car と Motorcycle を作成し、それぞれ startEngine() メソッドを実装します。さらに、Vehicle クラスをインスタンス化してみて、どうしてエラーが発生するのかを考えてみてください。

ヒント

抽象クラス Vehicle を定義し、その中に抽象メソッド startEngine() を宣言するという問題に対する考察を行います。

  1. 抽象クラス Vehicle:
    • Vehicle クラスは、車両(Vehicle)を表す抽象クラスとして定義されています。
    • startEngine() メソッドはエンジンを起動する操作を表す抽象メソッドです。
  2. 具象クラス Car と Motorcycle:
    • Car クラスと Motorcycle クラスは、Vehicle クラスを継承します。
    • 各具象クラスでは startEngine() メソッドがオーバーライドされ、車やバイクのエンジン起動操作が実装されます。
  3. Vehicle クラスのインスタンス化:
    • Vehicle クラスは抽象クラスであり、直接インスタンス化することができません。
    • インスタンスを生成するには、具象クラス(Car または Motorcycle)を使用する必要があります。
  4. エラーが発生する理由:
    • 抽象クラスは直接インスタンスを生成できないため、Vehicle クラスをインスタンス化しようとするとエラーが発生します。
    • 抽象クラスは、具象クラスを通じて利用されることが意図されています。そのため、直接抽象クラスをインスタンス化することは禁止されています。

考察の結果、Vehicle クラスのインスタンス化がエラーとなるのは、抽象クラスの性質からくるものであり、この挙動は抽象クラスを適切に利用するためのルールの一環です。

→解答例

「016 抽象クラス」問題集リスト

🎯 実習で理解を深めよう

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

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