我正在执行代码学院项目,构建机器人。 我可以执行步骤12和步骤13的一部分,但过去的第三部分要求创建另一个实例(Droid dan = new Droid(“ Dan”);),并创建一个energyTransfer方法来在它们之间交换BatteryLevel。看看我在下面尝试过的内容,我不知道自己是否在正确的道路上。任何帮助将不胜感激!
谢谢! :)
this.batteryLevel = newBatteryLevel;
newBatteryLevel = batteryLevel;"
'public class Droid{
String name;
int batteryLevel;
public Droid(String droidName){
name = droidName;
batteryLevel = 100;
}
public String toString(){
return "Hello I am droid " + name;
}
public void performTask(String task){
System.out.println(name + " is performing task: " + task);
batteryLevel = batteryLevel - 10;
}
public void energyReport(){
System.out.println(name + "'s Battery level is:" + batteryLevel);
}
public void energyTransfer(int newBatteryLevel) {
if (codey.batteryLevel > 10 ){
codey.batteryLevel = batteryLevel - 5;
}
else if (codey.batteryLevel < 10 && codey.batteryLevel > 1 ){
System.out.println("Transfer of energy not allowed at current power
level");
}
else {
System.out.println("Droid battery is depleted");
}
}
public static void main(String[] args){
Droid codey = new Droid("Codey");
Droid dan = new Droid("Dan");
System.out.println(codey);
codey.performTask("Walking");
codey.energyReport();
codey.performTask("Coding");
codey.energyReport();
codey.performTask("Cleaning");
codey.energyReport();
codey.performTask("Buying a house");
codey.energyReport();
dan.energyReport();
}
}'
我有2个实例codey和dan。如果Codey剩余电池电量为60%。我希望能够从剩余的电池中减去20%,并将其添加到剩余的代码电池(energyTransfer)中。
答案 0 :(得分:0)
我不确定我是否理解得很好。但是energyTransfer方法可能像这样:
public void energyTransfer(Droid aux){
if(this.batteryLevel == 60 && aux.batteryLevel >= 20){
this.batteryLevel += 20;
aux.batteryLevel -= 20;
}
}
您的主要用户:
Droid codey = new Droid("Codey");
Droid dan = new Droid("Dan");
/* ... */
codey.energyTransfer(dan);
答案 1 :(得分:0)
如果我会在您的位置,那么我将创建一个单独的能量传输类,该类将负责在两个实例之间交换能量,因为这不是您的机器人类的职责(根据SRP )
因此最好从Droid类中提取能量传递代码,并将其放入如下所示的新类中
class EnergyTransfer {
public void energyTransfer(Droid from, Droid to) {
//Add your code transfer logic here
}
}
创建一个单独的具有main方法的主类,如下所示
class Main {
public static void main(String[] args) {
Droid codey = new Droid("Codey");
Droid dan = new Droid("Dan");
System.out.println(codey);
codey.performTask("Walking");
codey.energyReport();
codey.performTask("Coding");
codey.energyReport();
codey.performTask("Cleaning");
codey.energyReport();
codey.performTask("Buying a house");
codey.energyReport();
dan.energyReport();
EnergyTransfer transfer = new EnergyTransfer();
transfer.energyTransfer(codey, dan);
}
}