我正在学校进行面向对象的编程任务,我很想知道创建由其他对象组成的对象的最佳方法是什么。在我的任务中,我必须创建一个汽车对象与其他四个对象(引擎,正文,gasTank,传输)我已经做了这些类,但我不知道如何在我的汽车类中使用这些对象作为参数的构造函数。只是寻找指导任何帮助将不胜感激!
答案 0 :(得分:0)
假设您在同一个包中创建了所有类:
class Car {
private Engine myEngine;
public Car(Engine engine) {
myEngine = engine;
}
}
现在您可以像这样调用Car对象:
Car myCar = new Car(new Engine());
答案 1 :(得分:0)
你需要这样的东西。我假设你的Car
class包含以下字段:engine
,body
,gasTank
,transmission
。
public Car(Engine engine, Body body, GasTank gasTank, Transmission transmission){
this.engine = engine;
this.body = body;
this.gasTank = gasTank;
this.transmission = transmission;
}
答案 2 :(得分:0)
汽车的构造函数可能如下所示:
public Car(Engine engine, Body body, Gastank gastank, Transmission transmission) {
this.engine = engine;
this.body = body;
this.gastank = gastank;
this.transmission = transmission;
}
答案 3 :(得分:0)
您可能会想到现实世界可以帮助您找到答案。汽车有发动机,车身,燃气罐和变速箱。
所以你可能会考虑:
public class Car {
Engine engine;
Body body;
GasTank gasTank;
Transmission transmission;
public Car() {
// TODO Auto-generated constructor stub
}
public Engine getEngine() {
return engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
public Body getBody() {
return body;
}
public void setBody(Body body) {
this.body = body;
}
public GasTank getGasTank() {
return gasTank;
}
public void setGasTank(GasTank gasTank) {
this.gasTank = gasTank;
}
public Transmission getTransmission() {
return transmission;
}
public void setTransmission(Transmission transmission) {
this.transmission = transmission;
}
}
答案 4 :(得分:0)
请记住,与任何其他方法一样,可以为类的构造函数指定参数。例如:
public class Car {
private engine;
public Car(Engine eng){
engine = eng;
}
}
您的Body
,GasTank
和Transmission
类的代码类似。然后,您可以通过传递每个单独的组件来创建新的Car
:
Car car = new Car(engine, body, tank, transmission)
(假设已经适当地定义了engine
等)。
你也可以有一个默认的构造函数,其中没有传入参数,而新的Car
实例使用默认部分:
public Car(){
engine = new Engine()
body = new Body()
tank = new GasTank()
transmission = new Transmission()
}