问题描述:
利用OOP思想编程实现以下代码的类结构:
引擎<发动机>类(Engine):成员属性:power 功率
方法:work()方法、属性power的get与set 方法
汽车类(Car):成员属性:engine引擎<发动机>
成员方法:run()方法<实现如果engine为空则输出不能跑,否则输出汽车在跑>、engine的get与set 方法
奔驰汽车类(Benz):构造器实例化一个引擎<发动机>、
重写实现run()方法<输出奔驰车在跑>
司机类(Driver):成员属性:司机姓名name
方法:驾驶(driverCar(Car car)) <显示谁在开着什么车在跑>、name属性的get与set方法
package com.exercise2_2;
public class Test {
public static void main(String[] args) {
Driver driver = new Driver();
driver.setName("小明");
Benz benz = new Benz();
benz.setEngine(120);
driver.driverCar(benz);
}
}
class Engine {
double power;
//构造函数
public Engine() {
power = 0;
}
public Engine(double power) {
this.power = power;
}
public Engine(Engine engine) {
power = engine.getPower();
}
public double getPower() {
return power;
}
public void setPower(double power) {
this.power = power;
}
public void work(double power_val) {
power = power_val;
}
}
class Car {
Engine engine;
public Engine getEngine() {
return engine;
}
public void setEngine(double power) {
engine.setPower(power);
}
public void run() {
if(engine == null) {
System.out.print("不能跑");
}
else {
System.out.print("能跑");
}
}
}
class Benz extends Car{
public Benz() {
engine = new Engine();
}
public void run() {
if(engine.getPower() == 0.0) {
System.out.print("奔驰车没有跑。");
}
else {
System.out.print("奔驰车在跑。");
}
}
}
class Driver {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void driverCar(Car car){
System.out.print(name+"开着");
car.run();
System.out.println();
}
}