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