D'accord, j'essaie de créer une méthode appelée: setIncrement(). J'ai deux classes que j'utilise, FourDigit, qui contient deux objets TwoDigit que j'ai créés. J'ai appelé chacun un segment1 et segment2. Leur relation est: segment1.segment2. Cette méthode va incrémenter le segment2 et quand elle sera remise à zéro, la méthode incrémentera le segment1.Appel Java à partir d'une classe getValue
Le problème est dans ce morceau de code:
public void setIncrement(){
segment2.incrementValue();
if(segment2.getValue == 0){
segment1.value = segment1.value +1;
}else{
segment2=aNum%tooHighB;
}
getDisplayString();
}
Il dit: ne peut pas trouver variable symbole: getValue() ???
Voici les classes:
classe FourDigits:
public class FourDigits
{
/**
* Fields
*/
private Digits segment1;
private Digits segment2;
private String displayString;
/**
* Constructor for objects of class FourDigits
*/
public FourDigits(int anyHigha, int anyHighb)
{
segment1 = new Digits(anyHigha);
segment2 = new Digits(anyHighb);
}
/**
* Mutator method to set values
*/
public void setValues(int anyNuma, int anyNumb){
segment1.setValue(anyNuma);
segment2.setValue(anyNumb);
}
/**
* Mutator method to set the increments
*/
public void setIncrement(){
segment2.incrementValue();
if(segment2.getValue == 0){
segment1.value = segment1.value +1;
}else{
segment2=aNum%tooHighB;
}
getDisplayString();
}
/**
* Mutator method to getDisplayString
*/
public void getDisplayString(){
System.out.println(segment1.displayString() ="." + segment2.displayString());
}
}
qui prend des méthodes de la classe Digits:
public class Digits
{
/**
* Fields
*/
private int value;
private int tooHigh;
private String displayString;
/**
* Constructors
*/
public Digits(int anyNum)
{
value = 0;
tooHigh=anyNum;
displayString = "";
}
/**
* Mutator method to set the value
*/
public void setValue(int anyValue){
if((anyValue < tooHigh) && (anyValue >= 0)){
value = anyValue;
}else{
value=0;
}
}
/**
* Mutator method to add to the value
*/
public void addValue(){
if(value < tooHigh){
value=value+1;
}else{
value=tooHigh;
}
}
/**
* Mutator method to increment the value
*/
public void incrementValue(){
int incrementValue;
incrementValue = value + 1;
value = incrementValue % tooHigh;
}
/**
* Mutator method to display the string
*/
public void displayString(){
if(value<10){
displayString="0" + value;
}else{
displayString="" + value;
}
System.out.println(displayString);
}
public int getValue(){
return value;
}
}
Il vous manque un signe "=" dans votre 'setIncrement()' function, dans l'instruction 'if'. ça devrait être "==". De plus, une trace de pile serait utile. – gnomed
Un conseil pour éviter l'erreur que j'ai mentionné est d'inverser l'ordre de vos comparaisons. donc 'if (0 == var)' au lieu de 'if (var == 0)'. De cette façon, vous ne recevrez pas une assignation erronée dans vos déclarations if. – gnomed