Java 返回语句使我困惑。不知道如何使用它

Java 返回语句使我困惑。不知道如何使用它,java,Java,嘿,伙计们,我对编程比较陌生。我在高中时做了一点,我正在努力重新开始。我现在正在使用Codecademy再次学习Java。因为我会努力保持活跃,所以我想在这里开个账户是明智的 我现在正在学习返回声明,我正在使它正常工作。。。我可以在无知中继续前行,假装我知道发生了什么,但我不知道。我在这里使用Return语句的任何地方都让我感到困惑,因为它感觉好像我可以将任何正确数据类型的实例/变量抛出到Return语句中,代码将不受影响地运行 例如,我将energyReport方法下的return语句从ret

嘿,伙计们,我对编程比较陌生。我在高中时做了一点,我正在努力重新开始。我现在正在使用Codecademy再次学习Java。因为我会努力保持活跃,所以我想在这里开个账户是明智的

我现在正在学习返回声明,我正在使它正常工作。。。我可以在无知中继续前行,假装我知道发生了什么,但我不知道。我在这里使用Return语句的任何地方都让我感到困惑,因为它感觉好像我可以将任何正确数据类型的实例/变量抛出到Return语句中,代码将不受影响地运行

例如,我将
energyReport
方法下的return语句从
return batteryLevel
更改为
return chargePak
,尽管这里没有参数,并且我在该方法中使用的实例是
batteryLevel
。请批评我的代码,我总是愿意学习,我知道我是新的。告诉我我做错了什么!帮我学习,谢谢你

我的代码:

public class Droid {
String name;
int batteryLevel;
int chargePak;

  //constructor
  public Droid(String droidName){
    name = droidName;
    batteryLevel = 100;
    chargePak = 400;
  }

  //toString method
  public String toString() {
    return "Meet " + name + " our newest droid!";
  }

  //Perform Task method
  public void performTask(String task) {
    System.out.println(name + " is performing " + task + "!");
    batteryLevel = batteryLevel - 10;
  }

  //Energy Report
  public int energyReport() {
    System.out.println("You have " + batteryLevel + "% remaining.");
   return chargePak;
  }

    //Energy Report for chargepak
  public int pakReport() {
    System.out.println("You have " + chargePak + "% remaining in your Charge Pak.");
   return chargePak;
  }

  //Energy Transfer
  public void chargeDroid(int charge) {
    chargePak = chargePak - charge;
    batteryLevel = charge + batteryLevel;
    System.out.println("Charging...\n" + "You now have " + batteryLevel + "% battery!");
  }

  //Main Method
  public static void main(String[] args){
    Droid codey = new Droid("Codey");
    System.out.println(codey);
    codey.energyReport();
    codey.performTask("Jump");
    codey.energyReport();
    codey.performTask("Punch");
    codey.performTask("Punch");
    codey.performTask("Kick");
    codey.performTask("Dab");
    codey.energyReport();
    codey.chargeDroid(20);
    codey.chargeDroid(20);
    codey.pakReport();
  }
}

首先,我想对这种态度表示赞赏。你实际上是在试图完全理解你正在学习的东西,不要让你觉得奇怪。这就是路

现在回答:

return
将函数中的值返回给调用方。例如:

公共静态int-giveMeTheAnswer(){
返回42;
}
公共静态void main(字符串[]args){
int-answer=giveMeTheAnswer();
System.out.println(“答案是”+答案);//打印“答案是42”
}
Java还允许您忽略返回值,在本例中,它只是被丢弃:

公共静态int-giveMeTheAnswer(){
返回42;
}
公共静态void main(字符串[]args){
giveMeTheAnswer();//此调用现在无效
System.out.println(“答案丢失了…”);
}
在您的情况下,您的函数实际上有副作用,即将内容打印到控制台本身。这样,它们实际上不必返回任何东西,因为您首先不使用返回值,而是调用函数只是为了它们的副作用

如果不需要返回值,可以将函数声明为returning
void
,然后只需使用
return
返回(无值),或完全忽略
返回
(因为在函数末尾它会自动返回):

publicstaticvoidprintmetheanswer(){
System.out.println(“答案是42”);
}
公共静态void main(字符串[]args){
printMeTheAnswer();
}

既然您没有使用从任何方法返回的值,那么它们都应该声明为
void
,就像您对
public void chargeDroid所做的一样
如何更改这一点,让我了解如何实际使用return?
int foo=codey.energyReport()
然后用
foo
做点什么,因为你提到我们应该批评:你的缩进不总是一致的,你应该修正它。这也会让你自己更容易阅读代码。明白我的意思吗: