Dans le cadre d'une affectation que je dois faire pour ma classe, je dois créer un fichier ADT qui acceptera l'entrée de l'utilisateur pour les numérateurs et les dénominateurs des fractions, comparez le deux, et déterminez si les fractions sont égales, puis testez-le dans une classe de harnais. Un des problèmes que je rencontre est que je dois avoir une méthode equals (Fraction f)
qui compare les deux en utilisant la formule suivante: return getNum()*f.getDenom() == f.getNum()*getDenom();
.Les méthodes ne peuvent pas être appliquées à des types donnés en Java
Voici le code de ma classe jusqu'à présent:
public class Fraction {
int numerator;
int denominator;
//default constructor
public Fraction() {
numerator = 0;
denominator = 0;
}
public Fraction(int newNum, int newDenom) {
numerator = newNum;
denominator = newDenom;
}
//accessor
public void setNewNum(int newNum) {
numerator = newNum;
}
public void setNewDenom(int newDenom) {
numerator = newDenom;
}
public int getNum(int newNum) {
return newNum;
}
public int getDenom(int newDenom) {
return newDenom;
}
//Error here - "Methods getNum/getDenom in class Fraction cannot be applied to the given types:"
public boolean equals(Fraction f) {
return getNum()*f.getDenom() == f.getNum()*getDenom();
}
}
La lecture du message d'erreur dans NetBeans dit que le "actual and formal argument lists differ in length."
je travaille à essayer de comprendre ce que je fait de mal, mais j'avais l'impression que newNum
et newDenom
renvoient déjà des valeurs qui sont des entiers, étant donné que newNum
et newDenom
sont définis comme égaux au numérateur et au dénominateur.
Merci d'avance.
'getNum (int newNum)' = 'getNum()' – Yahya
Un peu hors-sujet, mais pensez-vous qu'il est sûr de mettre 'dénominateur 'à 0 dans le constructeur par défaut? Je veux dire, nous parlons de fractions. Je voudrais le mettre à 1 – Pelocho
Pelocho - J'ai toujours pensé que les constructeurs ont été mis à 0. Est-ce pas correct? Je m'excuse, je suis encore très novice en ce qui concerne tout ce qui va au-delà du codage de base. – KMN