Die Berechnung der Fläche eines Kreises in Java
Muss ich ein Programm schreiben zur Berechnung der Fläche eines Kreises, und ich zu haben scheinen alles richtig, außer wenn ich das Programm ausführen, und geben Sie die Werte, die der Berechnung der Fläche wird als null.
public class Circle {
private double radius;
private double area;
public Circle() {
radius = 0;
area = 0;
}
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return area;
}
public void setArea(double area) {
area = radius * radius * Math.PI;
}
public String toString() {
return "The radius of the circle is: " + radius + ", and the area is: " + area;
}
}
Was muss ich ändern, damit, wenn mein test-code ruft die toString-es wird die Ausgabe einer berechneten Bereich?
Haben Sie das genannt
Ich sehe keinen Teil, der holt sich input zu füttern, um zu den
pastebin.com/RYUFY7AQ
Ihre
Fläche und radius korreliert werden sollte. Wenn Sie den Bereich auf einen bestimmten Wert, sollte es auch den radius festzulegen. Und wenn Sie den radius festzulegen, es sollte auch das Gebiet gesetzt. Ansonsten haben Sie einen Kreis, welches einen radius von 1 und eine Fläche von 10000, und dein Kreis kein Kreis mehr.
setArea
? Dein design ist falsch.Ich sehe keinen Teil, der holt sich input zu füttern, um zu den
Circle
Instanz. Wir müssen es auch sehen.pastebin.com/RYUFY7AQ
Ihre
setArea
Methode nicht die Klasse area
variable. Verwenden this.area =...
sonst bist du nur überschreiben Ihrer input-parameter.Fläche und radius korreliert werden sollte. Wenn Sie den Bereich auf einen bestimmten Wert, sollte es auch den radius festzulegen. Und wenn Sie den radius festzulegen, es sollte auch das Gebiet gesetzt. Ansonsten haben Sie einen Kreis, welches einen radius von 1 und eine Fläche von 10000, und dein Kreis kein Kreis mehr.
InformationsquelleAutor Paul Kappock | 2013-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie eine Methode Flächenberechnung basierend auf dem aktuellen radius. Bereich sollte nicht festgelegt werden.
Wenn Sie nicht speichern wollen, Bereich die in einer Variablen, Sie sollten aktualisieren, wenn Sie den radius festzulegen. Es sollte nicht unabhängig voneinander eingestellt werden, von "setArea". Andernfalls sind Sie anfällig für Inkonsistenzen. Auch der Hinweis von Josh Bloch ' s "Effective Java". Während Ihrer toString-Methode nutzen sollten, diese "berechnete Gebiet" ist, anstatt replizieren, die Berechnung, die Sie nicht haben sollte toString aufrufen, alles in Ihren öffentlichen API. Das wäre ein Problem, wenn Sie beispielsweise überschrieb getArea, was bedeuten würde, es würde sich anders Verhalten, als in Ihrem Kreis.toString erwartet. Das ist der Grund, warum ich die privaten "calculateArea".
InformationsquelleAutor sdanzig
Pass
radius
stattarea
imsetArea
Methode:für vollständige code- http://pastebin.com/jggRrUFd
InformationsquelleAutor satya
Dies ist meine version des Circle_Math Klasse, mit dem Eintrag Validierung und mit die minimale Anzahl von Zeilen /Operationen und Speicherplatz, um den job zu erledigen. Bitte hinterlassen Sie einen Kommentar, wenn Sie möchten.
roger 🙂 danke für Eure Vorschläge.
InformationsquelleAutor HAK
InformationsquelleAutor Fadi
InformationsquelleAutor Neeraj Gahlawat
Sie ursprünglich die
area
0 zu sein. Sie schuf eine Methode, um das zu ändern, aber nie aufgerufen. So nennen Sie es. Ändern Sie diese::
Ja, ich lese die Methode falsch. Ich dachte
setArea(area)
zurückgegebenen Zeichenfolge. Ich aktualisiert meine Antwort. Und ich bin nicht auf der Suche zu ändern, seine Klasse, die keinen Sinn macht für die meisten Teil, ich werde einfach versuchen das problem zu beheben, er spricht.InformationsquelleAutor Michael Yaworski