Erweitern von java-point-Klasse zu finden, Mittelpunkt
Im Studium für eine bevorstehende Prüfung und arbeite bei der Probe Probleme, insbesondere die folgenden:
Klasse hinzufügen Punkt unten eine Instanz-Methode aufgerufen Mittelpunkt, die gibt ein Objekt vom Typ Punkt repräsentiert den Mittelwert von zwei Punkten, wo einer der Punkte ist als parameter bereitgestellt werden, und der andere ist der aktuelle Punkt (also den Punkt, die von den lokalen Instanz-Variablen). Beachten Sie, dass Sie den Mittelpunkt gibt ein neues Point-Objekt. Machen Sie gute Nutzung der Klasse Punkt, ein Programm zu schreiben, das liest zwei Punkte und druckt Mittelpunkt. Der Eingang besteht aus zwei Zeilen, wo jede Zeile enthält die x - und y-Koordinaten eines Punktes. Ein Beispiel von Eingabe/Ausgabe folgt, mit input gekennzeichnet durch Fettformatierung:
Enter two points
2.1 3.2
3.0 2.8
The midpoint is (2.55,3.0)
Mein code für die point-Klasse ist wie folgt, und scheint ok zu sein (fühlen Sie sich frei, um jegliche Fehler oder Verbesserungen):
class Point {
private double x, y; //coordinates
Point(double x0, double y0){ //all-args constructor
x = x0; y = y0;
}
Point(){}; //no-args constructor (defaults apply)
void get() {
x = Console.readDouble();
y = Console.readDouble();
}
public Point midPoint(Point p) {
double mx = (p.x + x)/2;
double my = (p.y + y)/2;
return new Point(mx,my);
}
public String toString()
{
return "(" + x + "," + y + ")";
}
}
Und wo ich in Schwierigkeiten geraten ist eigentlich mit meinem Mittelpunkt-Methode in der code unten, jede Beratung wird sehr geschätzt.
import java.util.Scanner;
import java.io.*;
class Midpoint extends Point
{
public static void main (String[] args ) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter two points:");
double x1 = scanner.nextDouble();
double y1 = scanner.nextDouble();
double x2 = scanner.nextDouble();
double y2 = scanner.nextDouble();
Point p1 = new Point(x1, y1);
Point p2 = new Point(x2, y2);
p1.get();
return midPoint(p2);
}
}
InformationsquelleAutor BLL27 | 2012-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Aufruf
get()
Methode scheint unnötig.Zweitens, rufen Sie Ihren
midPoint
mit einem Objekt(wie pro die Anforderung in der Frage). Daher sollte es werden:Schließlich, da die Methode gibt eine
Point
Art, sicherzustellen, dass Sie fangen, was zurückgegeben wird.InformationsquelleAutor Kazekage Gaara
Gut aus, was Sie präsentiert haben, wie Ihr code , es ist definitiv falsch , Mittelpunkt ist eine Klasse Methode, so dass der einzige Weg, es zu benutzen, ist, zuerst instanziieren Sie die Klasse , wie Sie p1 , und rufen Sie dann die Methode für diese spezifische instace:
InformationsquelleAutor SpiXel
p1.midPoint(p2)
wenn Sie auf diese Weise, Sie brauchen nicht zu verlängern, point-Klassep1.get()
eigentlich? durch Zufall ist es die gleiche wie scanner?Vielen Dank für die Beratung.
InformationsquelleAutor user902383
Neben allen, die geschrieben wurde, von anderen, Ihre
MidPoint
Klasse erweitern sollte nichtPoint
Klasse. Ich denke, Sie wussten, dass für den Zweck der Verwendung, die Mittelpunkt-Methode, aber es ist falsch. Sie habe nichts neues Verhalten zu Zeigen. Klasse.InformationsquelleAutor tmszdmsk