La seule autre langue avec laquelle j'ai de l'expérience est Perl & c'est ma première expérience de programmation OO. J'ai l'impression que je m'approche de tout cela. Un des problèmes est probablement moi essayant de coder OO Java comme j'ai codé non-OO Perl. Quelqu'un peut-il suggérer un moyen d'accomplir gracieusement ce que j'essaie d'accomplir dans l'extrait de code ci-dessous?Méthode Recursive Set en Java - La variable par défaut est un Perl?
Note: Le ??? dans mon code est l'endroit où je voudrais utiliser l'objet par défaut.
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 } } }
Je voudrais utiliser une boucle 'while' au lieu d'un appel récursif à' setVar1' de sorte qu'une énorme série de mauvaises entrées ne provoque pas un StackOverflow. – Gabe
Je fournirais un constructeur sans-args qui appelle aussi (-1). Cela signifie que vous pouvez facilement créer un Var et que l'utilisateur sera invité à saisir l'entrée. – Syntax
@Gabe: Bien sûr, je suppose que la raison principale pour écrire le code récursif est pour l'écriture de récursion. Cela ressemble à une sorte de devoir pour moi. C'est la raison, je n'ai pas beaucoup changé. –