009 メンバへのアクセス制御 (public修飾子)004 解答例

public class Car {
    // クラスのフィールドやコンストラクタがここに入ります...

    // 問題1: publicなメソッドを追加してください。
    public void startEngine() {
        // エンジンを起動する処理を実装します
        System.out.println("エンジンを起動しました。");
    }

    public void drive() {
        // 車を運転する処理を実装します
        System.out.println("車を運転しています。");
    }

    public void stop() {
        // 車を停止する処理を実装します
        System.out.println("車を停止しました。");
    }
}

この解答例では、Car クラスに startEnginedrive、および stop という public なメソッドを追加しました。それぞれのメソッドは単純なメッセージを表示するだけのものですが、実際のアプリケーションではこれらのメソッド内には複雑な処理が含まれることがあります。例えば、startEngine メソッドではエンジンの点火や燃料供給の制御を行ったり、drive メソッドでは車両の速度や方向の制御を行ったりします。

publicメソッド

public メソッドは、Javaでクラス内のメソッドに適用されるアクセス修飾子の一つであり、他のクラスから直接アクセス可能なメソッドを示します。以下に、public メソッドの特徴と使用方法について解説します。

public メソッドの特徴:

  1. アクセス可能性: public メソッドは他のクラスから直接アクセス可能です。これにより、他のクラスからそのメソッドを呼び出すことができます。
  2. 外部APIの一部: クラスが提供する外部に公開されるAPIの一部として、public メソッドは他の開発者が使用できるようになります。このようなメソッドは、クラスの主要な機能や機能の一部を提供する役割を果たすことが一般的です。
  3. ゲッターとセッター: クラスのフィールドにアクセスするためのゲッターとセッターも一般的に public メソッドとして実装されます。これにより、外部からクラスの状態を取得し、変更することが可能になります。

public メソッドの使用例:

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

    // コンストラクタや他のメソッドがここに入ります...

    // nameフィールドにアクセスするためのゲッターメソッド
    public String getName() {
        return name;
    }

    // nameフィールドに新しい値を設定するためのセッターメソッド
    public void setName(String newName) {
        name = newName;
    }

    // ageフィールドにアクセスするためのゲッターメソッド
    public int getAge() {
        return age;
    }

    // ageフィールドに新しい値を設定するためのセッターメソッド
    public void setAge(int newAge) {
        if (newAge >= 0) {
            age = newAge;
        } else {
            System.out.println("年齢は負になりません。");
        }
    }

    // Personの情報を表示するメソッド
    public void displayInfo() {
        System.out.println("名前: " + name + ", 年齢: " + age + "歳");
    }
}

この Person クラスには、public メソッドとして getNamesetNamegetAgesetAge、および displayInfo があります。これらのメソッドを使用することで、他のクラスから Person インスタンスの情報にアクセスしたり、変更したりできます。

public class PersonUsage {
    public static void main(String[] args) {
        // Personクラスのインスタンスを作成
        Person person1 = new Person();

        // setNameメソッドを使用して名前を設定
        person1.setName("Alice");

        // setAgeメソッドを使用して年齢を設定
        person1.setAge(25);

        // displayInfoメソッドを使用してPersonの情報を表示
        person1.displayInfo();
    }
}

PersonUsage クラスでは、Person クラスのインスタンスを作成し、setName メソッド、setAge メソッド、および displayInfo メソッドを使用して Person クラスの機能を活用しています。

「009 メンバへのアクセス制御」問題集リスト