🏗️ クラスの作成(設計図の定義)

クラスの定義は、そのクラスが持つべきデータ(フィールド)と、そのデータに対する操作(メソッド)を記述することです。

基本の書式

Java

public class クラス名 {
    // 1. データ (フィールド) の定義
    // クラスが持つ変数や属性
    データ型 フィールド名; 
    
    // 2. 振る舞い (メソッド) の定義
    // クラスが実行できる動作
    public 戻り値の型 メソッド名(引数) {
        // 実行される処理
    }
}

💻 具体的な作成例

ここでは、Car(車)というクラスを作成してみます。

Java

public class Car {
    // フィールド(データ):この車の状態を表す
    String color;  // 色
    int speed = 0; // 速度(初期値0)

    // メソッド(振る舞い):この車が実行できる動作
    public void accelerate(int value) {
        speed = speed + value;
        System.out.println("速度が " + speed + " に上がりました。");
    }

    public void brake() {
        speed = 0;
        System.out.println("停車しました。");
    }
}

🚗 2. クラスの利用(オブジェクトの生成と操作)

作成したクラスという「設計図」を使って、実際にメモリ上に動く「実体」、すなわちオブジェクト(またはインスタンス)を生成し、操作します。

2.1. オブジェクトの生成

オブジェクトを生成するには、newキーワードを使います。

Java

// クラス名 変数名 = new クラス名();
Car myCar = new Car(); 
Car yourCar = new Car();
  • myCaryourCarは、それぞれ独立した異なるオブジェクト(実体)です。

2.2. フィールドへのアクセスと値の代入

生成したオブジェクトのデータ(フィールド)には、**ドット演算子(.)**を使ってアクセスします。

Java

// myCarのcolorフィールドに "Red" を設定
myCar.color = "Red"; 
// yourCarのcolorフィールドに "Blue" を設定
yourCar.color = "Blue";

System.out.println("My Carの色: " + myCar.color);    // 出力: Red
System.out.println("Your Carの色: " + yourCar.color); // 出力: Blue

2.3. メソッドの呼び出し

オブジェクトの振る舞い(メソッド)を実行する際も、ドット演算子を使います。

Java

myCar.accelerate(50); // Carクラスのaccelerateメソッドを実行
// 出力: 速度が 50 に上がりました。

myCar.brake(); // Carクラスのbrakeメソッドを実行
// 出力: 停車しました。

// 別のオブジェクトを操作
yourCar.accelerate(30); 
// 出力: 速度が 30 に上がりました。

🛠️ 3. コンストラクタ (Constructor)

コンストラクタは、オブジェクトが生成される際に一度だけ実行される特別なメソッドです。主に、フィールドの初期設定に使われます。

特徴

  • メソッド名がクラス名と完全に同じでなければならない。
  • 戻り値の型を記述しないvoidも書かない)。

💻 コンストラクタの例

Java

public class Car {
    String color;
    int speed = 0;

    // コンストラクタを定義(引数を受け取ってフィールドを初期化)
    public Car(String startColor) {
        this.color = startColor; // 受け取った値をcolorフィールドに設定
        System.out.println(startColor + "の車が新しく作成されました。");
    }
    // ... 他のメソッド ...
}

// 呼び出し側では、引数を指定してオブジェクトを生成する
Car newCar = new Car("Black"); // コンストラクタが実行される

コンストラクタがない場合、Javaは自動で引数なしのデフォルトコンストラクタを提供しますが、自分でコンストラクタを定義すると、オブジェクトの初期状態を細かく制御できるようになります。