在面向对象程序中增加一个私有实例变量



表类

public Table() {
height = 0.0;
weight = 0.0;
color = "unknown";
numberOfLegs = 4;
inventoryNumber = 1;
numberOfTables++;
}// no args contructor
public Table(double h, double w, String c, int n) {
height = h;
weight = w;
color = c;
numberOfLegs = n;
inventoryNumber = 2;
numberOfTables++;
}// constructor

转轮级

Table kitchenTable = new Table();
Table diningTable = new Table(5.5, 9.9, "brown", 8);
Table picnicTable = new Table(3.3, 4.4, "red", 6);
Table babyTable = new Table();

如何在不使库存数量变为静态变量的情况下增加库存数量例如,My runner类with有2个无args构造函数和System out println,但它们都有1个。而我想要第一个打印1和第二个打印2

您有两个选项

可变

Table类中添加此方法

public void incrementInventory() {
this.inventoryNumber++;
}

使用

Table mutableTable = new Table();
mutableTable.incrementInventory();

不可更改(推荐(

将其添加到Table类中

// new constructor
public Table(double h, double w, String c, int n, int inventory, int tables) {
height = h;
weight = w;
color = c;
numberOfLegs = n;
inventoryNumber = inventory;
numberOfTables = tables;
}
public Table incrementInventory() {
// new Table with the same all variables and inventory + 1
return new Table(
this.height, this.weight , this.color , this.numberOfLegs ,
this.inventoryNumber + 1, this.numberOfTables 
);
}

使用

Table inmutableStateOne = new Table();
Table inventoryPlusOne = inmutableStateOne.incrementInventory();

inmutableStateOne将保持您的初始状态,而inventoryPlusOneinventory + 1相同

最新更新