Ich versuche, ein Objekt "rationale Zahl" zu initiieren, die einen Zähler , einen Nenner q
und ihr Verhältnis r
speichert. Dieser Code führt zu einer falschen Antwort.Wie initiiere ich ein Java-Objekt mit einer Variablen?
class Rational {
int p, q;
double ratio;
public Rational(){
this.p = 0;
this.q = 1;
this.ratio = this.p/(double)(this.q);
}
public static void main (String[]arg) {
Rational r1 = new Rational();
r1.p = 1;
r1.q = 7;
// r1.ratio = r1.p/(double)(r1.q); //"this line"
System.out.println (r1.p + "/" + r1.q + " = " + r1.ratio) ;
}
}
Uncommentment "diese Linie" löst das Problem. Wie definiert man ein Objekt, so dass this.r
automatisch jedes Mal aktualisiert wird, wenn this.p
oder this.q
geändert wird?
Sie sollten 'return (double) p/(double) q;' verwenden, um eine ganzzahlige Division zu vermeiden. –
du hast Recht, danke – vincent