/** * ドメイン非依存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); 011 コンストラクタ | Javaドリル https://minner.asia 楽々学べるJavaの問題集 Fri, 05 Sep 2025 02:16:50 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://minner.asia/wp-content/uploads/2023/10/cropped-logo-32x32.png 011 コンストラクタ | Javaドリル https://minner.asia 32 32 011 コンストラクタ(別のコンストラクタを呼び出す) 009 解答例 https://minner.asia/archives/2737 https://minner.asia/archives/2737#respond Sat, 25 Nov 2023 09:43:22 +0000 http://localhost/?p=2737
public class Circle {
    private double radius;

    // デフォルトコンストラクタ
    public Circle() {
        // 別のコンストラクタを呼び出す
        this(1.0);
    }

    // 引数つきコンストラクタ
    public Circle(double radius) {
        // コンストラクタ本体の実装
        this.radius = radius;
    }

    // 他のコンストラクタを呼び出すメソッド
    public void setRadius(double radius) {
        // 別のコンストラクタを呼び出す
        this.radius = radius;
    }

    // ゲッターメソッド(省略)

    // 円の面積を計算するメソッド
    public double calculateArea() {
        // 円の面積の計算式: π * r^2
        return Math.PI * radius * radius;
    }
}

この解答例では、デフォルトコンストラクタが引数つきコンストラクタを呼び出しています。また、別のコンストラクタを呼び出すためのメソッド setRadius も追加されています。これにより、同じ初期化処理を再利用できるようになります。

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2737/feed 0
011 コンストラクタ(別のコンストラクタを呼び出す) 009 問題 https://minner.asia/archives/2735 https://minner.asia/archives/2735#respond Sat, 25 Nov 2023 09:40:03 +0000 http://localhost/?p=2735

問題

以下の Circle クラスを完成させてください。Circle クラスは半径 (radius) の情報を保持します。デフォルトコンストラクタでは、半径を 1 で初期化します。引数を受け取るコンストラクタは、指定された半径で初期化します。デフォルトコンストラクタや引数つきコンストラクタから別のコンストラクタを呼び出すように実装してください。

public class Circle {
    private double radius;

    // デフォルトコンストラクタ

    // 引数つきコンストラクタ

    // 他のコンストラクタを呼び出すメソッド

    // ゲッターメソッド(省略)

    // 円の面積を計算するメソッド
    public double calculateArea() {
        // 円の面積の計算式: π * r^2
        return Math.PI * radius * radius;
    }
}

ヒント

Circle クラスに複数のコンストラクタがあります。これらのコンストラクタを使ってオブジェクトを生成し、コンストラクタチェーンが正しく動作していることを確認してください。コンストラクタチェーンを使うと、同じ初期化処理を共有しつつ、異なる引数を受け取る様々なコンストラクタを定義できます。

→解答例

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2735/feed 0
011 コンストラクタ(別のコンストラクタを呼び出す) 008 解答例 https://minner.asia/archives/2731 https://minner.asia/archives/2731#respond Sat, 25 Nov 2023 09:35:50 +0000 http://localhost/?p=2731
public class Book {
    private String title;
    private String author;
    private int pages;

    // デフォルトコンストラクタ
    public Book() {
        // 別のコンストラクタを呼び出す
        this("Unknown", "Anonymous", 0);
    }

    // 引数つきコンストラクタ
    public Book(String title, String author, int pages) {
        // コンストラクタ本体の実装
        this.title = title;
        this.author = author;
        this.pages = pages;
    }

    // 他のコンストラクタを呼び出すメソッド
    public void setDetails(String title, String author, int pages) {
        // 別のコンストラクタを呼び出す
        this.title = title;
        this.author = author;
        this.pages = pages;
    }

    // ゲッターメソッド(省略)
}

この解答例では、デフォルトコンストラクタが引数つきコンストラクタを呼び出す形になっています。また、別のコンストラクタを呼び出すためのメソッド setDetails も追加されています。これにより、同じ初期化処理を再利用できるようになります。

コードの再利用はなぜ大切か?

コードの再利用は、プログラミングにおいて非常に重要な原則の一つであり、いくつかの理由から大切です。

  1. 効率的な開発: 既存のコードを再利用することで、新しい機能やプログラムをより迅速に開発できます。同じ機能を何度も実装する必要がないため、開発時間が短縮されます。
  2. 保守性の向上: 再利用可能なコードは、変更や修正が発生した際に、修正が必要な箇所が限定され、保守性が向上します。修正が一箇所ですむことで、エラーの可能性が低減します。
  3. 一貫性の確保: 同じ機能や処理を再利用することで、一貫性を確保しやすくなります。コードの一貫性があると、開発者やメンテナンス担当者がコードを理解しやすくなります。
  4. バグの減少: 再利用可能なコードは、多くのテストが実施されたものである可能性が高いです。再利用することで、以前のプロジェクトで発見されたバグや問題に対処する経験が活かされ、新しいプロジェクトでのバグの発生が減少します。
  5. 抽象化と分離: 再利用可能なコードを作成する際には、関心ごとの分離や抽象化が考慮されがちです。これにより、コードがより理解しやすく、独立して変更できるようになります。
  6. 資源の節約: 再利用により、新しくコードを書くためのリソース(開発者の時間や労力)を節約できます。既存の質の高いコードを利用することで、開発者は新しい要件に焦点を当てられます。

再利用はコードの品質向上や開発プロセスの効率化に寄与するため、ソフトウェア開発においては重要な原則とされています。

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2731/feed 0
011 コンストラクタ(別のコンストラクタを呼び出す) 008 問題 https://minner.asia/archives/2728 https://minner.asia/archives/2728#respond Sat, 25 Nov 2023 09:32:05 +0000 http://localhost/?p=2728

問題

以下の Book クラスを完成させてください。Book クラスはタイトル (title)、著者 (author)、およびページ数 (pages) の情報を保持します。デフォルトコンストラクタでは、タイトルを “Unknown”、著者を “Anonymous”、ページ数を 0 で初期化します。引数を受け取るコンストラクタは、指定されたタイトル、著者、およびページ数で初期化します。デフォルトコンストラクタや引数つきコンストラクタから別のコンストラクタを呼び出すように実装してください。

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

    // デフォルトコンストラクタ

    // 引数つきコンストラクタ

    // 他のコンストラクタを呼び出すメソッド

    // ゲッターメソッド(省略)
}

ヒント

フォルトコンストラクタが引数つきコンストラクタを呼び出す場合、this キーワードを使用して引数つきのコンストラクタを呼び出します。これにより、コンストラクタチェーンを構築できます。 this を使って、デフォルトコンストラクタが必要な初期化を行います。

→解答例

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2728/feed 0
011 コンストラクタ(別のコンストラクタを呼び出す) 007 解答例 https://minner.asia/archives/2721 https://minner.asia/archives/2721#respond Sat, 25 Nov 2023 09:24:47 +0000 http://localhost/?p=2721
public class Person {
    private String name;
    private int age;

    // デフォルトコンストラクタ
    public Person() {
        // 別のコンストラクタを呼び出す
        this("Unknown", 18);
    }

    // 引数つきコンストラクタ
    public Person(String name, int age) {
        // コンストラクタ本体の実装
        this.name = name;
        this.age = age;
    }

    // 他のコンストラクタを呼び出すメソッド
    public void setDetails(String name, int age) {
        // 別のコンストラクタを呼び出す
        this.name = name;
        this.age = age;
    }

    // ゲッターメソッド(省略)
}

この解答例では、デフォルトコンストラクタが引数つきコンストラクタを呼び出しています。また、新しく setDetails メソッドを追加し、このメソッドを通じても別のコンストラクタを呼び出すことができます。 setDetails メソッド内で別のコンストラクタを呼び出すことで、同じ初期化処理を利用できるようになります。

this

this は、Java言語などの多くのオブジェクト指向プログラミング言語で使用される特殊なキーワードで、クラス内のメソッドやコンストラクタ内で、そのメソッドやコンストラクタが属しているインスタンス(オブジェクト)自体を指す参照です。以下に this の主な用途を解説します。

1.現在のオブジェクトの参照:
this は、そのメソッドやコンストラクタを呼び出しているインスタンスを指します。メソッド内で使用することで、クラス内のインスタンス変数やメソッドにアクセスできます。

public class MyClass {
    private int value;

    public void setValue(int value) {
        // メソッドの引数とクラスのインスタンス変数の名前が同じ場合、thisを使用して区別
        this.value = value;
    }
}

2.コンストラクタ内で別のコンストラクタを呼び出す:
コンストラクタ内で同じクラス内の別のコンストラクタを呼び出す場合、this キーワードを使用します。これにより、コンストラクタチェーンを構築できます。

public class MyClass {
    private int value;

    public MyClass() {
        // 別のコンストラクタを呼び出す
        this(0);
    }

    public MyClass(int value) {
        this.value = value;
    }
}

3.メソッドの中で自分自身のインスタンスを返す:
メソッド内で自分自身のインスタンスを返す場合、return this; のように使用できます。これを利用すると、メソッドチェーンを構築することができます。

public class MyClass {
    private int value;

    public MyClass setValue(int value) {
        this.value = value;
        return this;
    }
}

上記の例では、setValue メソッドが自分自身のインスタンスを返しています。

4.インナークラスの場合:
インナークラス(内部クラス)のメソッド内で外側のクラスのインスタンスを参照する際にも this を使用します。外側のクラスの this と区別するために、外側クラス.this のように指定します。

public class OuterClass {
    private int value;

    public class InnerClass {
        public void setValue(int value) {
            // InnerClass内でOuterClassのインスタンスを参照する
            OuterClass.this.value = value;
        }
    }
}

これらの使い方により、this キーワードはクラス内でのメンバ変数やメソッドへのアクセス、コンストラクタチェーンの構築、メソッドチェーンの実現など、クラス内でのコードの明確性や柔軟性を向上させるのに役立ちます。

コンストラクタでプロパティを初期化するときにthisがなぜいるの?

コンストラクタに引数を渡してプロパティを初期化する際に this キーワードを使用する主な理由は、同じ名前のインスタンス変数(メンバ変数)とコンストラクタの引数名が衝突することを回避するためです。以下に、この理由を詳しく説明します。

1.名前の衝突を回避する:
コンストラクタの引数とクラス内のインスタンス変数が同じ名前の場合、通常の代入文だけではどちらがどちらを指しているのかが明確ではありません。このとき、this キーワードを使って、その値がインスタンス変数であることを明示的に示します。

public class MyClass {
    private int value;

    public MyClass(int value) {
        // 名前の衝突を回避するためにthisを使用
        this.value = value;
    }
}

上記の例では、value という名前がコンストラクタの引数とクラスのフィールドに共通しています。this を使って、value がインスタンス変数であることを示しています。

2.クラス内の他のメソッドとの明確な区別:
this キーワードを使用することで、コンストラクタ内でクラス内の他のメソッドやフィールドとの明確な区別が付きます。これにより、メンバ変数と引数の違いがはっきりし、コードの可読性が向上します。

public class MyClass {
    private int value;

    public MyClass(int value) {
        // インスタンス変数に引数の値を代入
        this.value = value;
        // 他のメソッドを呼び出すなどの操作も可能
        doSomething();
    }

    public void doSomething() {
        // クラス内の他のメソッド
        // ...
    }
}

上記の例では、doSomething メソッドがコンストラクタ内で呼び出されています。this キーワードを使用することで、value がインスタンス変数であることが明示され、同じ名前の引数と区別されます。

このように、this キーワードを使用することで、コンストラクタ内での変数の参照が明確になり、コードの可読性が向上します。

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2721/feed 0
011 コンストラクタ(別のコンストラクタを呼び出す) 007 問題 https://minner.asia/archives/2719 https://minner.asia/archives/2719#respond Sat, 25 Nov 2023 09:13:35 +0000 http://localhost/?p=2719

問題

以下の Person クラスを完成させてください。Person クラスは名前 (name) と年齢 (age) の情報を保持します。デフォルトコンストラクタでは、名前を “Unknown”、年齢を 18 で初期化します。引数を受け取るコンストラクタは、指定された名前と年齢で初期化します。また、デフォルトコンストラクタや引数つきコンストラクタから別のコンストラクタを呼び出すように実装してください。

public class Person {
    private String name;
    private int age;

    // デフォルトコンストラクタ

    // 引数つきコンストラクタ

    // 他のコンストラクタを呼び出すメソッド

    // ゲッターメソッド(省略)
}

ヒント

デフォルトコンストラクタが引数つきコンストラクタを呼び出す場合、this キーワードを使用して引数つきのコンストラクタを呼び出します。この際、引数つきコンストラクタの中に必要な初期化処理を追加します。

→解答例

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2719/feed 0
011 コンストラクタ(コンストラクタを呼び出す) 006 解答例 https://minner.asia/archives/2711 https://minner.asia/archives/2711#respond Sat, 25 Nov 2023 09:08:02 +0000 http://localhost/?p=2711
public class Animal {
    private String species;
    private int age;

    // デフォルトコンストラクタ
    public Animal() {
        this("Unknown", 1); // 別のコンストラクタを呼び出す
    }

    // 引数つきコンストラクタ1
    public Animal(String species) {
        this(species, 1); // 別のコンストラクタを呼び出す
    }

    // 引数つきコンストラクタ2
    public Animal(String species, int age) {
        this.species = species;
        this.age = age;
    }

    // ゲッターメソッド(省略)

    // mainメソッド
    public static void main(String[] args) {
        // デフォルトコンストラクタが呼び出される
        Animal animal1 = new Animal();
        System.out.println("Animal1: Species = " + animal1.getSpecies() + ", Age = " + animal1.getAge());

        // 引数つきコンストラクタが呼び出される
        Animal animal2 = new Animal("Lion");
        System.out.println("Animal2: Species = " + animal2.getSpecies() + ", Age = " + animal2.getAge());

        // 別の引数つきコンストラクタが呼び出される
        Animal animal3 = new Animal("Elephant", 10);
        System.out.println("Animal3: Species = " + animal3.getSpecies() + ", Age = " + animal3.getAge());
    }
}

この例では、Animal クラス内に main メソッドが追加され、その中で Animal クラスのオブジェクトを生成しています。各オブジェクトの状態が正しく表示されるかどうかを確認することができます。

コンストラクタチェーン

「コンストラクタチェーン」は、同じクラス内で異なるコンストラクタがお互いを呼び出す仕組みを指します。これにより、コンストラクタの共通した初期化処理を効率的に再利用できます。以下は、「コンストラクタチェーン」の要点を解説します。

  1. 同じクラス内でのコンストラクタ呼び出し: コンストラクタチェーンでは、同じクラス内で定義された異なるコンストラクタがお互いを呼び出します。これにより、コンストラクタの初期化処理が効果的に再利用されます。
  2. thisキーワードの利用: コンストラクタチェーンを実現するためには、this キーワードを使用して同じクラス内の別のコンストラクタを呼び出します。this キーワードを使って別のコンストラクタを呼び出すことで、コンストラクタチェーンが形成されます。
  3. オーバーロードされたコンストラクタ: コンストラクタチェーンを構築するには、同じクラス内でオーバーロードされた複数のコンストラクタが必要です。これらのコンストラクタは異なる引数リストを持つことができます。

以下は、Person クラスの例を通じてコンストラクタチェーンを示すコードです。

public class Person {
    private String name;
    private int age;

    // デフォルトコンストラクタ
    public Person() {
        this("Unknown", 18); // 別のコンストラクタを呼び出す
    }

    // 引数を受け取るコンストラクタ1
    public Person(String name) {
        this(name, 18); // 別のコンストラクタを呼び出す
    }

    // 引数を受け取るコンストラクタ2
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // ゲッターメソッド(省略)
}

この例では、デフォルトコンストラクタが引数つきのコンストラクタを呼び出し、引数つきのコンストラクタが別の引数つきのコンストラクタを呼び出しています。これにより、コンストラクタチェーンが形成され、オブジェクト生成時に柔軟な初期化が可能となります。

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2711/feed 0
011 コンストラクタ(コンストラクタを呼び出す) 006 問題 https://minner.asia/archives/2709 https://minner.asia/archives/2709#respond Sat, 25 Nov 2023 09:03:28 +0000 http://localhost/?p=2709

問題

以下の Student クラスがあります。このクラスには複数のコンストラクタがあります。main メソッドでこのクラスのオブジェクトを生成し、コンストラクタチェーンが正しく動作していることを確認してください。

public class Student {
    private String name;
    private int age;
    private String major;

    // デフォルトコンストラクタ
    public Student() {
        this.name = "Unknown";
        this.age = 18;
        this.major = "Undeclared";
    }

    // 引数を受け取るコンストラクタ1
    public Student(String name) {
        this(); // デフォルトコンストラクタを呼び出す
        this.name = name;
    }

    // 引数を受け取るコンストラクタ2
    public Student(String name, int age, String major) {
        this(name); // 別の引数を受け取るコンストラクタを呼び出す
        this.age = age;
        this.major = major;
    }

    // ゲッターメソッド(省略)
}

コンストラクタチェーンとは

「コンストラクタチェーン」とは、同じクラス内で複数のコンストラクタがお互いに呼び出し合う仕組みを指します。これにより、異なる引数リストや初期化処理を持つコンストラクタを効果的に再利用できるようになります。コンストラクタチェーンは、オーバーロードされたコンストラクタが同じクラス内でお互いに呼び出されることで形成されます。

ヒント

public class Main {
    public static void main(String[] args) {
        // デフォルトコンストラクタが呼び出される
        Person person1 = new Person();
        System.out.println("Person1: Name = " + person1.getName() + ", Age = " + person1.getAge());

        // 引数を指定してコンストラクタが呼び出される
        Person person2 = new Person("John");
        System.out.println("Person2: Name = " + person2.getName() + ", Age = " + person2.getAge());

        // 別の引数を指定してコンストラクタが呼び出される
        Person person3 = new Person("Alice", 25);
        System.out.println("Person3: Name = " + person3.getName() + ", Age = " + person3.getAge());
    }
}

class Person {
    private String name;
    private int age;

    // デフォルトコンストラクタ
    public Person() {
        this("Unknown", 18); // 別のコンストラクタを呼び出す
    }

    // 引数を受け取るコンストラクタ1
    public Person(String name) {
        this(name, 18); // 別のコンストラクタを呼び出す
    }

    // 引数を受け取るコンストラクタ2
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // ゲッターメソッド(省略)
}

この例では、Person クラスがデフォルトコンストラクタと2つの引数を受け取るコンストラクタを持ち、それぞれが別のコンストラクタを呼び出す形でコンストラクタチェーンが構成されています。main メソッド内でオブジェクトを生成して、それぞれのオブジェクトの状態を出力しています。

→解答例

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2709/feed 0
011 コンストラクタ(コンストラクタを呼び出す) 005 解答例 https://minner.asia/archives/2705 https://minner.asia/archives/2705#respond Sat, 25 Nov 2023 08:55:09 +0000 http://localhost/?p=2705
public class Main {
    public static void main(String[] args) {
        // デフォルトコンストラクタが呼び出される
        Rectangle rectangle1 = new Rectangle();
        System.out.println("Rectangle1: Length = " + rectangle1.getLength() + ", Width = " + rectangle1.getWidth());

        // 引数を受け取るコンストラクタが呼び出される
        Rectangle rectangle2 = new Rectangle(5.0, 10.0);
        System.out.println("Rectangle2: Length = " + rectangle2.getLength() + ", Width = " + rectangle2.getWidth());
    }
}

class Rectangle {
    private double length;
    private double width;

    // デフォルトコンストラクタ
    public Rectangle() {
        this.length = 1.0;
        this.width = 1.0;
    }

    // 引数を受け取るコンストラクタ
    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    // ゲッターメソッド
    public double getLength() {
        return length;
    }

    public double getWidth() {
        return width;
    }
}

この例では、Rectangle クラスのデフォルトコンストラクタと引数を受け取るコンストラクタが異なるオブジェクト生成時に呼び出されています。それぞれのオブジェクトの状態を出力して、どのコンストラクタが呼び出されているか確認できます。デフォルトコンストラクタでは長さと幅がデフォルト値で初期化され、引数を受け取るコンストラクタでは指定した値で初期化されていることが確認できます。

複数のコンストラクタの利用

「複数のコンストラクタの利用」は、同じクラス内で異なる引数リストを持つ複数のコンストラクタを定義し、それぞれのコンストラクタが異なる初期化処理を提供することを指します。これにより、オブジェクトを生成する際に異なる情報を指定して柔軟に初期化できます。

以下に、「複数のコンストラクタの利用」の要点を解説します。

1.æ§‹æ–‡:
複数のコンストラクタを定義するには、同じクラス内でコンストラクタをオーバーロードします。オーバーロードされたコンストラクタは、引数の型や数が異なるものです。

public class MyClass {
    // コンストラクタ1
    public MyClass(Type1 arg1) {
        // 初期化処理
    }

    // コンストラクタ2
    public MyClass(Type2 arg1, Type3 arg2) {
        // 初期化処理
    }

    // 他のメソッドやコードは省略
}

2.引数の型や数の異なり:
複数のコンストラクタを区別するためには、引数の型や数が異なる必要があります。引数の型や数が同じ場合、コンパイラがどのコンストラクタを呼び出すべきか判断できなくなります。

3.オーバーロードの利用:
コンストラクタのオーバーロードは、異なる初期化の要件に対応する柔軟性を提供します。例えば、オブジェクトの生成に必要な情報が異なる場合に備えて、複数のコンストラクタを用意できます。

public class Person {
    // フィールド: 名前と年齢
    private String name;
    private int age;

    // 引数を受け取るコンストラクタ1
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 引数を受け取るコンストラクタ2 (年齢を指定せずに名前だけを受け取る)
    public Person(String name) {
        this.name = name;
        this.age = 0; // デフォルトで0歳とする
    }
}

この例では、Person クラスには2つの異なる引数の組み合わせに対応するコンストラクタが定義されています。これにより、オブジェクトを生成する際に必要な情報を指定して柔軟に初期化できます。

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2705/feed 0
011 コンストラクタ(コンストラクタを呼び出す) 005 問題 https://minner.asia/archives/2702 https://minner.asia/archives/2702#respond Sat, 25 Nov 2023 08:43:14 +0000 http://localhost/?p=2702

問題

以下の Rectangle クラスがあります。このクラスには、引数を受け取るコンストラクタとデフォルトコンストラクタがあります。main メソッドでこのクラスのオブジェクトを複数生成し、異なるコンストラクタが呼び出されていることを確認してください。

public class Rectangle {
    private double length;
    private double width;

    // デフォルトコンストラクタ
    public Rectangle() {
        this.length = 1.0;
        this.width = 1.0;
    }

    // 引数を受け取るコンストラクタ
    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    // ゲッターメソッド(省略)
}

ヒント

1.デフォルトコンストラクタの呼び出し:
デフォルトコンストラクタは引数を取らず、オブジェクトを初期化します。オブジェクトを生成する際、引数なしで new キーワードを使用してオブジェクトを生成することでデフォルトコンストラクタが呼び出されます。

2.引数を受け取るコンストラクタの呼び出し:
引数を受け取るコンストラクタは、指定された引数でオブジェクトを初期化します。引数つきの new キーワードを使用してオブジェクトを生成することで、引数を受け取るコンストラクタが呼び出されます。

これらのヒントを元に、デフォルトコンストラクタおよび引数を受け取るコンストラクタが異なるオブジェクト生成時に呼び出されることを確認してください。

→解答例

「011 コンストラクタ」問題集リスト

🎯 実習で理解を深めよう

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

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