我有任何經驗的唯一其他語言是Perl &這是我在OO編程中的第一個破解。我覺得我接近這一切都是錯誤的。其中一個問題可能是我試圖編寫OO Java,比如我編寫了非OO Perl代碼。任何人都可以提出一種方法來優雅地完成我在下面的代碼片段中完成的任務嗎?Java中的遞歸集方法 - 默認變量a Perl?
注意:???在我的代碼中,我想使用默認對象。
public class Var { private double var1; public Var (double PassedVar1) { //method to create new object var1 = ???.SetVar1(PassedVar1); } public void SetVar1 (double PassedVar) { if (PassedVar > 0) { //make sure we're assigning a positive value var1 = PassedVar; } else { //force user to input a new value System.out.print("\nFailed to set var. " + "Please enter a number greater than zero: "); Scanner scan = new Scanner (System.in); PassedVar = scan.nextDouble(); var1 = ???.SetVar1(PassedVar);//recurse call to assure positive } } }
我會使用'while'循環而不是遞歸調用'setVar1',這樣一大系列錯誤輸入不會導致StackOverflow。 – Gabe 2010-10-26 04:50:05
我會提供一個無參數構造函數,它也調用此(-1)。這將意味着您可以輕鬆創建Var,並提示用戶輸入。 – Syntax 2010-10-26 05:39:22
@Gabe:當然,我假設編寫遞歸代碼的主要原因是爲了編寫遞歸。這對我來說看起來像是一種任務。那就是原因,我沒有太多改變。 – 2010-10-26 06:18:19