Java面向对象OOP练习源码02

本文通过面向对象编程思想,设计了Engine(引擎)、Car(汽车)、Benz(奔驰汽车)和Driver(司机)四个类。Engine类包含功率属性和work()方法;Car类拥有Engine属性并能运行;Benz类继承Car,实例化Engine并重写run()方法;Driver类持司机姓名,可驾驶Car并显示驾驶信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

利用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();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菲儿啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值