私はtimePasses()
メソッドを持つアプライアンスクラスを作成しました。このメソッドは、別のクラスの内部にある別のメソッド内に格納する必要のある値をリダイレクトします。私はこの上までだのはここです:メソッドを呼び出すときに正しい値を渡す方法は?
アプライアンス
public class ElectricCooker extends Cooker {
public int isOn = -1;
public int isOff = 0;
public int incrementTime;
public int varPass = -1;
@Override
public int currentState() {
if (varPass == 0) {
return isOff;
} else {
return isOn;
}
}
@Override
public void useTime(int defaultTime) {
defaultTime = 15;
incrementTime = 4;
}
@Override
public void timePasses() {
if (varPass == isOff) {
varPass = 0;
} else {
ElectricMeter.getInstance().incrementConsumed(electricityUse);
GasMeter.getInstance().incrementConsumed(gasUse);
WaterMeter.getInstance().incrementConsumed(waterUse);
}
}
ElectricCooker(int electricityUse, int gasUse, int waterUse, int timeOn) {
super(electricityUse, gasUse, waterUse, timeOn);
this.electricityUse = 5 * incrementTime;
this.gasUse = 0 * incrementTime;
this.waterUse = 0 * incrementTime;
this.timeOn = 15 * incrementTime;
}
}
メーター
public class ElectricMeter {
ElectricMeter() {
}
private static ElectricMeter instance = new ElectricMeter();
public static ElectricMeter getInstance() {
return instance;
}
public void incrementConsumed(int value) {
System.out.println(value);
}
public int incrementGenerated() {
}
public boolean canGenerate() {
}
public String getConsumed() {
}
public String getGenerated() {
}
}
Mainメソッド
public class MainCoursework {
public static void main(String[] args) {
ElectricMeter a = new ElectricMeter();
a.incrementConsumed(//what goes here?);
}
}
したがってtimePasses()
の値はElectricMeter
インスタンスにリダイレクトされましたが、今度はその値をメータークラスのincreentConsumed()
メソッドに戻す必要があります。これを行う方法については固執しています。 electricityConsumed
の値は20であるため、出力は20
である必要があります。しかし代わりに、a.incrementConsumed(//pass parameter here)
にパラメータを渡さなければならず、electrictyUse
から20
の代わりに何が渡されるかが画面に表示されます。どのようにこれを行うに役立つ、感謝、ありがとうございます。