2017-05-08 46 views
0

对不起,如果这是一个令人困惑的问题或重复。所以我有一个名为“Driveable”的布尔方法,如果这是真的,我想打印出汽车的行驶速度。然后我也想展示这款车是什么样的。但是,我想传递int“速度”,并会在我调用该方法时输入参数。但是,当我在“gearChange”方法中调用此方法时,它要求输入一个整数,我不想输入不过,我想通过已经在“速度”方法中输入的参数。那么在另一种方法中再次调用该方法时,是否可以传递一个参数或返回值?再次抱歉,这个令人困惑的问题。我意识到可能有其他方式来获得我的答案,但为了将来的参考,我想知道这样的事情是否可能。所以我不太关心下面的代码或者做出改变,更多的是做这种事情的可能性。以另一种方法再次调用方法时是否可以使用返回值作为参数

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(); 
+4

你不清楚你在问什么,请正确格式化你的代码。 –

+0

我可以问问它没有正确格式化吗?或者什么可以使其格式正确?它是间距吗?抱歉! –

回答

0

欢迎来到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(); 

} 

在很多情况下,你可以使用getter和setter方法(getX()setX()访问值(除非你正在做一些函数式编程)。

注意,你也将会是调用testSpeed()方法多次。

你想重温这样的设计,让你想完成它不清楚是什么。

+0

非常感谢bphilipnyc!这正是我正在寻找的!我必须确保下次再添加“this.currentSpeed”这个字段!我现在只编写了一个月左右的代码。如果你有时间,你能解释我如何让我的代码更易理解吗?或者这只是带有经验的东西?我的代码和你的看起来和我非常相似(除了“this.currentSpeed”),但我确信我错了哈哈。 –

+0

不幸的是,艾伦,SO不适合这种类型的东西。您可以尝试https://codereview.stackexchange.com/来查找您正在寻找的答案。这也是一个非常有用的领域。一开始可能会非常令人沮丧。挂在那里。 – bphilipnyc

0

你应该有一个对象(例如汽车),其中您可以设置速度并在其中调用setSpeed(int speed)方法,这样当您调用同一对象的方法gearChange()时,您可以检索当前速度(还应该检查它是否已设置或接受如果没有设置,则零有更正)。

我认为如果你想在Java中感到舒适,你需要更多地熟悉OOP。

+0

嘿!感谢你的帮助! “POO”是什么意思是为他人编程?对不起,如果我的编码是非常草率的。除了继续练习之外,还有哪些建议可以改进? –

+0

对不起,我一定忘了英文是面向对象编程(OOP)。用法语说我们说公安条例。 –

相关问题