Java 在另一个方法中再次调用该方法时,是否可以使用返回值作为参数

Java 在另一个方法中再次调用该方法时,是否可以使用返回值作为参数,java,Java,抱歉,如果这是一个令人困惑的问题或重复的问题。所以我有一个叫做“Driveable”的布尔方法,如果这是真的,我想打印出汽车的行驶速度。然后我还想展示一下汽车的档位。但是,我想传递int“speed”,并在调用该方法时输入参数。然而,当我在“gearChange”方法中调用该方法时,它要求我输入一个整数,但我不想输入整数,我想传递我在“speed”方法中已经输入的参数。那么,在另一个方法中再次调用该方法时,是否可以传递参数或返回值?再次为这个令人困惑的问题感到抱歉。我知道也许还有其他方法可以得到

抱歉,如果这是一个令人困惑的问题或重复的问题。所以我有一个叫做“Driveable”的布尔方法,如果这是真的,我想打印出汽车的行驶速度。然后我还想展示一下汽车的档位。但是,我想传递int“speed”,并在调用该方法时输入参数。然而,当我在“gearChange”方法中调用该方法时,它要求我输入一个整数,但我不想输入整数,我想传递我在“speed”方法中已经输入的参数。那么,在另一个方法中再次调用该方法时,是否可以传递参数或返回值?再次为这个令人困惑的问题感到抱歉。我知道也许还有其他方法可以得到我的答案,但为了将来的参考,我想知道这样的事情是否可行。因此,我不太关心下面的代码或进行更改,更不关心这样做的可能性

public static int speed(int speed){

  if(driveable()){

     System.out.print(" you are going " + speed + " miles per hour");
     return speed;   
   }else{

     System.out.print("The car is not drive able");
     return -1; 

   }

}

public static void gearChange(){
  //here:
  if(speed(speed) >= 1 && speed(speed) <= 20){

      System.out.print("You are in first gear");

    etc...

}

speed(int 15);

gearChange();
公共静态整数速度(整数速度){
if(可驱动()){
System.out.print(“您正在行驶”+速度+“英里/小时”);
返回速度;
}否则{
系统输出打印(“汽车无法驾驶”);
返回-1;
}
}
公共静态更改(){
//在这里:
如果(速度)(速度)>=1&&speed(速度)欢迎使用SO

是的,您可以在方法之外设置变量。注意:这是一段不太容易理解的代码,但我加入它是为了演示如何在方法之外设置变量。我还稍微更新了命名以区分变量

private int currentSpeed;

public static boolean driveable() {

    return true; //or whatever your logic may be
}

public int testSpeed(int speed) {

    if (driveable()) {

        System.out.print(" you are going " + speed + " miles per hour");
        this.currentSpeed = speed;
        return speed;
    }

    else {

        System.out.print("The car is not driveable");
        this.currentSpeed = speed;
        return -1;
    }

}

public void gearChange() {

    if (testSpeed(this.currentSpeed) >= 1 && testSpeed(this.currentSpeed) <= 20) {
        System.out.print("You are in first gear");
    }

}

@Test //run in Junit to see the output
public void testIt() {

    testSpeed(15);
    gearChange();

}
private int currentSpeed;
公共静态布尔可驱动(){
返回true;//或者不管您的逻辑是什么
}
公共整数测试速度(整数速度){
if(可驱动()){
System.out.print(“您正在行驶”+速度+“英里/小时”);
这个.currentSpeed=速度;
返回速度;
}
否则{
系统输出打印(“汽车无法驾驶”);
这个.currentSpeed=速度;
返回-1;
}
}
公共财政改革(){
如果(testSpeed(this.currentSpeed)>=1&&testSpeed(this.currentSpeed)您应该有一个对象(例如Car),在该对象中您可以设置速度,并且在该对象中有一个setSpeed(int speed)方法,这样当您调用同一对象的方法gearChange()时,您可以检索当前速度(您还应检查是否已设置,如果未设置,则应检查accept zero是否正确)


如果你想熟悉Java,我认为你需要更多地熟悉OOP。

不清楚你在问什么,请正确地格式化你的代码。我可以问一下它是怎么格式不正确的吗?或者是什么使它格式正确?是空格吗?对不起!非常感谢bphilipnyc!这正是我要找的!我知道了我下次一定要在“this.currentSpeed”字段中加上!我只写了一个月左右的代码。如果你有时间,你能解释一下我是如何让我的代码更容易理解的吗?还是这只是经验的积累?我的代码和你的代码看起来非常相似(除了“this.currentSpeed”)但我肯定我错了哈哈。不幸的是,艾伦,所以不是适合这种类型的论坛。你可以尝试找到你正在寻找的答案。这也是一个非常有用的领域。一开始可能会非常沮丧。坚持住。嘿!谢谢你的帮助!你说的“POO”是什么意思这是为其他人编写的程序吗?如果我的代码太草率了,很抱歉。除了继续练习之外,还有什么建议可以改进它吗?很抱歉,我一定忘了在英语中是OOP(面向对象编程)。在法语中我们说POO。