在用其他类创建的java中创建类时,最佳做法是什么

时间:2014-03-03 19:55:27

标签: java class oop

我正在学校进行面向对象的编程任务,我很想知道创建由其他对象组成的对象的最佳方法是什么。在我的任务中,我必须创建一个汽车对象与其他四个对象(引擎,正文,gasTank,传输)我已经做了这些类,但我不知道如何在我的汽车类中使用这些对象作为参数的构造函数。只是寻找指导任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:0)

假设您在同一个包中创建了所有类:

class Car {
    private Engine myEngine;

    public Car(Engine engine) {
        myEngine = engine;
    }

}

现在您可以像这样调用Car对象:

Car myCar = new Car(new Engine());

答案 1 :(得分:0)

你需要这样的东西。我假设你的Car
class包含以下字段:enginebodygasTanktransmission

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;
    }
}

您的BodyGasTankTransmission类的代码类似。然后,您可以通过传递每个单独的组件来创建新的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()
}