職業訓練 42日目 JAVA
ブラックフライデー
毎年、規模が拡大傾向ですね。
スーパーマーケットの商品が 結構黒い。
あの手この手で拡販拡販。
ちょっとは乗っかるかな。
この不二家のシュークリームも 黒くなかったら手に取ってない。

職業訓練 JAVA
前日で テキスト入門編が完了し、
実践編テキストに突入
パッケージとJAVA API
生成AIに課題もらう
「抽象クラス ポリモーフィズム カプセル化 で練習課題ください 100行から150行くらいで。」
📝 課題内容:乗り物管理システム
要件
- 抽象クラス
Vehicle - フィールド:
brand(メーカー名),speed(速度) - コンストラクタ:引数2つで初期化
accelerate(int amount)抽象メソッドprintInfo()共通メソッド- サブクラス
Car:加速すると速度が一定量増えるBike:加速すると速度が少し増えるBus:加速すると速度が大きく増える- カプセル化
- フィールドは
private getBrand(),getSpeed()で外部からアクセス- Garage クラス
Listを保持addVehicle(Vehicle v)で追加showAllVehicles()で全車両表示testDriveAll()で全車両を加速させる- Main クラス
- 複数の車両を作成し、Garage に追加
- 全車両の情報を表示し、テスト走行を実行
import java.util.ArrayList;
import java.util.List;
abstract class Vehicle {
private String brand;
private int speed;
public Vehicle (String brand,int speed){
this.brand = brand;
this.speed = speed;
}
public String getBrand() {
return brand;
}
public int getSpeed() {
return speed;
}
protected void setSpeed(int speed) {
this.speed = speed;
}
public abstract void accelerate(int amount);
public void printInfo() {
System.out.println("メーカー:" + brand + ",速度:" + speed + "km/h");
}
}
class Car extends Vehicle {
public Car(String brand,int speed) {
super(brand,speed);
}
@Override
public void accelerate(int amount){
setSpeed(getSpeed() + amount * 2 );
System.out.println(getBrand() + "(Car)が加速!速度:" + getSpeed());
}
}
class Bike extends Vehicle {
public Bike(String brand,int speed) {
super(brand,speed);
}
@Override
public void accelerate(int amount) {
setSpeed(getSpeed() + amount);
System.out.println(getBrand() + "(Bike)が加速!速度: " + getSpeed());
}
}
class Bus extends Vehicle {
public Bus(String brand,int speed) {
super(brand,speed);
}
@Override
public void accelerate(int amount) {
setSpeed(getSpeed() + amount *3);
System.out.println(getBrand() + "(Bus)が加速!速度: " + getSpeed());
}
}
class Garage{
private List<Vehicle> vehicles = new ArrayList<>();
public void addVehicle(Vehicle v) {
vehicles.add(v);
}
public void showAllVehicle() {
System.out.println("=== 車庫の車両一覧===");
for (Vehicle v : vehicles) {
v.printInfo();
}
}
public void testDriveAll() {
System.out.println("===全車両をテスト走行===");
for (Vehicle v : vehicles) {
v.accelerate(10);
}
}
}
public class Main {
public static void main(String[] args) {
Garage garage = new Garage();
Vehicle car = new Car("Toyota",50);
Vehicle bike = new Bike("Honda",30);
Vehicle bus = new Bus("Nissan",40);
garage.addVehicle(car);
garage.addVehicle(bike);
garage.addVehicle(bus);
garage.showAllVehicle();
System.out.println();
garage.testDriveAll();
System.out.println();
garage.showAllVehicle();
}
}
42日目/113日間
このブログへのコメントは muragonにログインするか、
SNSアカウントを使用してください。