Nous sommes en train de créer un setter avec l'instruction if. Nous essayons de limiter les valeurs approuvées et utilisons une méthode d'impression pour imprimer la valeur qui est définie, ou "faux" si la valeur n'est pas acceptée.Il y a un problème avec l'instruction if dans notre setter
Ceci est la méthode:
Public class Sykkel extends Kjøretøy
{
private int height;
public Sykkel(String colour)
{
// initialise instance variables
super(1, colour);
this.height = height;
}
public void setHeight (int height) {
if(height > 35 && height < 70){
System.out.println("Sykkelen er " + height + " cm høy.");
} else {
System.out.println("Wrong");
}
}
public int getHeight() {
return height;
}
Peu importe ce que nous avons la hauteur il imprime « Faux ». Quelqu'un voit-il l'erreur dans le code?
nous avons essayé à la fois this.height et juste la hauteur, mais le résultat est toujours le même.
Merci d'avance.
Il semble que la ligne 'this.height = height;' dans votre constructeur n'a pas beaucoup de sens - que serait 'height' dans ce contexte? Il n'y a pas de tel paramètre remis. En dehors de cela, peut-être nous montrer comment vous appelez réellement 'setHeight()'? – domsson
** 1. ** Quelle est la valeur du côté droit de l'assignation 'this.height = height;'? ** 2. ** Quelle valeur est testée dans 'if (height> 35 && height <70)' - est-ce le paramètre de la fonction 'height' ou le membre' this.height'? Dans ce dernier cas, le résultat dépend fortement d'une réponse à la première question. – CiaPan
Vous devrez fournir le code original, celui-ci a des erreurs de compilation évidentes, il est donc difficile de déduire ce qui pourrait être faux. L'autre chose est, est-ce le code à un seul thread ou vous utilisez un peu de multithreading? – alobodzk