2017-05-08 5 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

ようこそ。

はい、メソッドの外に変数を設定できます。注:これはあまり分かりにくいコードではありませんが、メソッドの外に変数を設定する方法を示すためにこれを含めています。また、変数を区別するために名前を少し更新しました。あなたもtestSpeed()を呼び出すことだろう

多くの場合
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(); 

} 

あなたには、いくつかの関数型プログラミングをやっている場合を除き、あなたは)(アクセス値にgetX()setX()(getterメソッドとsetterメソッドを使用します。

注意メソッドを複数回。

あなたはこの設計を再検討し、あなたが達成しようとしているもの、それを明確にしたい。

+0

ありがとうbphilipnyc!これはまさに私が探しているものです!次回は "this.currentSpeed"フィールドに必ず追加してください!私は1ヶ月程度しかコーディングしていません。時間があれば、コードをもっと分かりやすくする方法を説明できますか?それとも経験に付いているのですか?私のコードとあなたのものは私と非常に似ています(「this.currentSpeed」を除く)が、私は間違っていると確信しています。 –

+0

残念ながら、アレンは、そのタイプのものに適したフォーラムではありません。 https://codereview.stackexchange.com/を試して、探している回答を見つけることができます。それは本当に役に立つ領域です。最初は本当にイライラすることがあります。そこにハングアップ。 – bphilipnyc

0

あなたがいる(例えば、車のための)オブジェクトを持っている必要があります同じオブジェクトのメソッドgearChange()を呼び出すと、現在の速度を取得することができます(設定されているかどうかを確認する必要があります)設定されていなければ0が正しい)。

Javaで快適にしたい場合は、OOPにもっと慣れておく必要があると思います。

+0

ねえ!あなたのすべての協力に感謝します! 「POO」とは、他者のためのプログラミングです。申し訳ありませんが、私のコーディングが非常にお粗末です。それを改善する方法について、継続的な練習の他に、どんな勧告もありますか? –

+0

申し訳ありませんが、私は英語でOOP(オブジェクト指向プログラミング)を忘れていたに違いありません。フランス語ではPOOと言う。 –

関連する問題