クラスとオブジェクト
クラスの定義
クラスはオブジェクトの設計図です。クラスを定義することで、オブジェクトの属性(フィールド)と振る舞い(メソッド)を指定します。
1.構造
フィールド(Fields): オブジェクトの特性を表します。例えば、車のクラスには色や速度などが含まれます。
メソッド(Methods): オブジェクトが実行できるアクションを定義します。例えば、車が加速する動作など。
コンストラクタ(Constructors): クラスからオブジェクトを作成するための特別なメソッドです。オブジェクトの初期化に使われます。
public class Car {
String color; // フィールド
int speed; // フィールド
// コンストラクタ
Car(String c, int s) {
color = c;
speed = s;
}
// メソッド
void accelerate(int amount) {
speed += amount;
}
}
2. オブジェクトの生成
クラスからオブジェクトを生成するには、newキーワードと共にコンストラクタを呼び出します。
Car myCar = new Car("Red", 0); // Carオブジェクトの生成
3. メソッドとフィールド
フィールド: オブジェクトの状態を保存します。例えば、colorフィールドは車の色を保持します。
メソッド: オブジェクトに対して実行できるアクションです。accelerate()メソッドは車の速度を増加させます。
myCar.accelerate(10); // myCarの速度を10増加させる
System.out.println(myCar.speed); // 現在の速度を表示
4. コンストラクタ
オブジェクトを作成する際に呼び出される特別なメソッドです。オブジェクトの初期状態を設定するために使用されます。
Car(String color, int speed) {
this.color = color;
this.speed = speed;
}
5. 継承とポリモーフィズム
継承
一つのクラス(親クラス)の特性を他のクラス(子クラス)が引き継ぐことです。
コードの再利用性を高め、構造を整理します。
ポリモーフィズム
異なるクラスのオブジェクトが同じインターフェースを共有することを指します。
メソッドのオーバーロード(同じメソッド名で異なるパラメータリスト)やオーバーライド(子クラスが親クラスのメソッドを再定義)を通じて実現されます。
継承の例
public class Vehicle {
void move() {
System.out.println("移動する");
}
}
public class Car extends Vehicle {
@Override
void move() {
System.out.println("車が移動する");
}
}
ポリモーフィズムの例
Vehicle myVehicle = new Car();
myVehicle.move(); // "車が移動する" が出力される