Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java创建由其他类组成的类时,最佳实践是什么_Java_Class_Oop - Fatal编程技术网

用java创建由其他类组成的类时,最佳实践是什么

用java创建由其他类组成的类时,最佳实践是什么,java,class,oop,Java,Class,Oop,我在学校里做一个面向对象的编程作业,我想知道创建由其他对象组成的对象的最佳方法是什么。在我的作业中,我必须创建一个包含四个其他对象(发动机、车身、油箱、变速器)的car对象。我已经创建了这些类,但我不知道如何在我的car类中创建一个将这些对象用作参数的构造函数。只是寻求指导,任何帮助都将不胜感激 假设您在同一个包中创建了所有类: class Car { private Engine myEngine; public Car(Engine engine) { my

我在学校里做一个面向对象的编程作业,我想知道创建由其他对象组成的对象的最佳方法是什么。在我的作业中,我必须创建一个包含四个其他对象(发动机、车身、油箱、变速器)的car对象。我已经创建了这些类,但我不知道如何在我的car类中创建一个将这些对象用作参数的构造函数。只是寻求指导,任何帮助都将不胜感激

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

class Car {
    private Engine myEngine;

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

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

Car myCar = new Car(new Engine());
public Car(Engine engine, Body body, Gastank gastank, Transmission transmission) {
    this.engine = engine;
    this.body = body;
    this.gastank = gastank;
    this.transmission = transmission;
}

你需要这样的东西。我假设你的车是这样的 类具有以下字段:
引擎
主体
气体罐
变速箱

public Car(Engine engine, Body body, GasTank gasTank, Transmission transmission){
   this.engine = engine;
   this.body = body;
   this.gasTank = gasTank;
   this.transmission = transmission;
}

汽车的构造可以如下所示:

Car myCar = new Car(new Engine());
public Car(Engine engine, Body body, Gastank gastank, Transmission transmission) {
    this.engine = engine;
    this.body = body;
    this.gastank = gastank;
    this.transmission = transmission;
}

你可能会想到现实世界来帮助你找到答案。汽车有发动机、车身、油箱和变速器

<>你可以考虑:

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

}

请记住,与任何其他方法一样,类的构造函数可以给定参数。例如:

public class Car {
    private engine;

    public Car(Engine eng){
        engine = eng;
    }
}
您的
Body
GasTank
Transmission
类的代码将类似。然后,您可以通过传入每个单独的组件来创建一辆新的
汽车

Car car = new Car(engine, body, tank, transmission)
(假设已正确定义了
发动机
等)

您还可以使用默认构造函数,其中不传入任何参数,并且新的
Car
实例使用默认部分:

public Car(){
    engine = new Engine()
    body = new Body()
    tank = new GasTank()
    transmission = new Transmission()
}

作为参数传递它们?使用生成器模式?使用普通设置器?我不知道你在问什么。听起来像是经典。附上你的汽车类代码,然后我们可以为你指出正确的方向。