Java面向对象OOP练习源码02

问题描述:

利用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();
	}
}
发布了34 篇原创文章 · 获赞 7 · 访问量 2205

猜你喜欢

转载自blog.csdn.net/qq_37717494/article/details/104507737