# java-oo-basic-car **Repository Path**: twa-java-bootcamp/java-oo-basic-car ## Basic Information - **Project Name**: java-oo-basic-car - **Description**: car truck bus engine - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java oo basic =========== ## Story 1 1. 在 main 方法中有 new Car(),并有 Car 的行为 speedUp 2. Car 类中有一个 speedUp,会打印车的名字以及速度,格式参考:"name: speed up 30 km/h", 其中 name 为 Car 的私有 字段,会根据传入的值变化,默认是"Cool Car"。运行 Main 函数,能够看拿到 car.speedUp 执行的结果 ## Story 2 3. 新需求还需要有 Truck, 先给 Car 创建一个基类 Vehicle, name 字段和 speedUp 都会放到 Vehicle 中,Car中仅仅有构造函数传入了名字,测试car.speedUp运行输出不变 4. 创建一个 Truck 类继承 Vehicle, Truck 和 Car加速度(speedUp中的数字不一样)是不一样的,car.speedUp 需要输出 “Cool Car: speed up 30 km/h”, 而 truck.speedUp 需要输出 “Big Truck: speed up 10 km/h”。 5. 创建一个 Bus 类,bus.speedUp 需要输出 “Bus: speed up 15 km/h” 。 ## Story 3 6. 新需求有一个 Driver 类,他可以开各种类型的汽车,有一个speedUp方法,实例化时构造函必须输入字符串“car” 或 "bus" 或 "truck",然后实现 driver 开各种类型的汽车,driver.speedUp 需要根据车的类型输出 “Cool Car: speed up 30 km/h” 或 “Bus: speed up 15 km/h” 或 “Big Truck: speed up 10 km/h” ## Story 4 7. 新建一个Engine类, 把 speed 字段换成 Engine类型(接口),Engine中有 speedUp 方法,用来返回一个字符串(类似“30 km/h”),实现这两个Engine Interface: Gasoline Engine 和 Electric engine, 分别返回“10 km/h” 和 “30 km/h” 8. 改写 Car constructor,传入 Engine 类型参数,并加入私有字段 engine, Car中 speedUp 方法中的30 km/h 换成调用engine.speedUp动态获取 9. main函数中,new Car("Cool Car A", new GasolineEngine()), new Car("Cool Car A", new ElectricEngine()), 输出调用 speedUp 的结果