練習問題:Javaのクラス・メソッド・フィールド
Javaの「クラス・メソッド・フィールド」を理解するための練習問題をいくつか作ってみました。基礎から少し応用まで段階的に用意します。
問題1:クラスとフィールドの定義
次の仕様を満たすクラス Car を作成してください。
- フィールド
String brand(車のブランド名)int speed(現在の速度)
- メソッド
void accelerate(int value): speed を value だけ増加させるvoid brake(int value): speed を value だけ減少させる(ただし speed が 0 未満にならないようにする)
問題2:メソッドの呼び出し
上で作成した Car クラスを使って、次の処理を行う Main クラスを作成してください。
- brand が
"Toyota"のCarオブジェクトを生成する accelerate(50)を呼び出すbrake(20)を呼び出す- 最終的な speed を出力する
問題3:フィールドの初期化とコンストラクタ
Car クラスにコンストラクタを追加してください。
- 引数として
brandを受け取り、フィールドに代入する - speed は初期値 0 に設定する
回答例と解説
回答1:Car クラスの定義
public class Car {
String brand; // フィールド(インスタンス変数)
int speed; // フィールド(インスタンス変数)
// 加速メソッド
void accelerate(int value) {
speed += value;
}
// 減速メソッド
void brake(int value) {
speed -= value;
if (speed < 0) {
speed = 0; // マイナスにならないように調整
}
}
}
Java解説
- フィールドはクラスが持つ「データ(状態)」を表す。
- メソッドはクラスが持つ「処理(振る舞い)」を表す。
speedを直接変更するのではなく、accelerateやbrakeを通じて操作することで、クラスの一貫性を保てる。
回答2:Main クラスでの利用
public class Main {
public static void main(String[] args) {
Car myCar = new Car(); // Car オブジェクト生成
myCar.brand = "Toyota"; // フィールドに値を代入
myCar.accelerate(50); // speed = 50
myCar.brake(20); // speed = 30
System.out.println("最終速度: " + myCar.speed);
}
}
Java実行結果
最終速度: 30
解説
myCar.brand = "Toyota";のようにフィールドへ直接代入できる。myCar.accelerate(50);のようにメソッドを呼び出して処理を実行する。
回答3:コンストラクタの追加
public class Car {
String brand;
int speed;
// コンストラクタ
Car(String brand) {
this.brand = brand;
this.speed = 0;
}
void accelerate(int value) {
speed += value;
}
void brake(int value) {
speed -= value;
if (speed < 0) {
speed = 0;
}
}
}
JavaMain クラスでの利用
public class Main {
public static void main(String[] args) {
Car myCar = new Car("Toyota"); // brand をコンストラクタで設定
myCar.accelerate(50);
myCar.brake(20);
System.out.println("最終速度: " + myCar.speed);
}
}
Javaまとめ
- クラス = 設計図
- フィールド = データ(状態)
- メソッド = 処理(振る舞い)
- コンストラクタ = オブジェクト生成時の初期化

