包含Java中的对象的对象

时间:2014-06-12 16:35:07

标签: java class object

我是一名Java初学者,从一本书中学习,我遇到了一个需要FuelGauge和里程表课程的问题。然后它说,"里程表类型的每个对象都应该包含FuelGauge类型的对象。我该怎么做?这就是我对里程表的看法:

public class Odometer {

public double mileage;
public double gallonsPerMile;

public Odometer() {
    mileage=0;

}

public Odometer(double miles) {
    this.mileage=miles;

}


public void mileagePlusOne() {
    mileage+=1;
}

}

我想在构造函数中添加一些东西,但我有点卡住了。

4 个答案:

答案 0 :(得分:0)

要将FuelGage添加到里程表,只需在里程表类中声明一个变量

private FuelGauge fuelGauge

类文件指定构建对象的模板。通过创建新对象new Odometer(),您可以实例化该类的新实例。

在类中声明的变量对于单个实例是唯一的,只要它们不被声明为“静态”。例如,每个实例化的里程表都有自己的里程数变量。

通过像我上面所说的那样宣布一个新的燃油表,每个里程表现在都有一个燃油表。应该将类的每个变量声明为private,以防止其他类修改其内部状态。您应该使用修改值的公共函数(getters / setters)

public void setFuelGauge(fuelGauge) {
    this.fuelGauge = fuelGauge;
}

public FuelGauge getFuelGauge() {
    return fuelGauge;
}

在构造函数中,您可以包含fuelGauge = new FuelGauge()。您也可以重载构造函数以接受电量计

public Odometer(Fuelgauge fuelGauge) {
    mileage = 0;
    this.fuelGauge = fuelGauge;
}

答案 1 :(得分:0)

如果您拥有变量mileagegallonspermile,则可以添加变量public FuelGauge gauge;

然后在您设置miles的构造函数中,设置guage = new FuelGuage();

答案 2 :(得分:0)

这意味着

public class Odometer {

private FuelGauge fuelGauge;

public double mileage;
public double gallonsPerMile;

public Odometer() {
    mileage=0;
   this.fuelGauge = new FuelGauge();

}

public Odometer(double miles, FuelGuage fuelGauge) {
    this.mileage=miles;
    this.fuelGauge = fuelGauge;
}

答案 3 :(得分:0)

您可以按如下方式更新课程:

public class Odometer {

public double mileage;
public double gallonsPerMile;
public FuelGauge gauge; // Add this to declare the instance of FuelGauge

public Odometer() {
    mileage=0;
    gauge = new FuelGauge(); // Instantiate gauge, which you can now use as wanted

}

public Odometer(double miles) {
    this.mileage=miles;

}


public void mileagePlusOne() {
    mileage+=1;
}

}