Hallo,
ich habe hier meine Hauptklasse mit main Methode (1), aus der ich Variablen der Klasse Point (2) erstellen kann (zwei int- variablen für x und y). Jetzt soll ich in der Klasse Point die Methode generateRandom(int xy) erstellen. Diese wird wie bei 6. aufgerufen und soll jetzt vom Punkt v die x und y variable zufällig festlegen und ändern. Allerdings weiß ich nicht wie ich das machen soll, hab mit klassen gerade erst angefangen.
Danke,
Johannes
Java:
publicclassPointTester{publicstaticvoid main (String[] args){//1.Point v =newPoint();//2.
v =newPoint(30,40);//3.System.out.println("X: "+ v.getX());//4.System.out.println("Y: "+ v.getY());//5.System.out.println("Norm: "+ v.norm());//6.
v =Point.generateRandom(50);//System.out.println("X: " + v.getX() + " Y: " + v.getY());}}
Ist die "generateRandom als static-Methode vorgegeben ? ich würde die
nicht static machen, und ausserdem vom Typ void, also kein return-Wert.
Also du schmeisst einfach das static raus und die Zeile wo du jetzt was returnst.
(die Zeile war eh Schmarrn.)
Und in der main hast du ja schon v als Instanz von Point, d.h. dort rufst du auf:
Seh ich genauso.
Void statt static und return weg, dann sollte es klappen.
So wie du es jetzt gelöst hast geht es zwar auch, wird aber eher die falsche Lösung dafür sein.
Nunja - wenn der Aufruf so vorgegeben ist, wie im ersten Post, dann muss es ja die Lösung mit der statischen Funktion sein, die eine neue Instanz zurück gibt...
Mhmmm, er sagt nur er soll vom Punkt v die Koordinaten zufällig ändern. Und er würde dann ja nicht vom Punkt v die Koordinaten ändern sondern einen neuen Punkt erzeugen. Und das könnte er genausogut mit einem parametrisierten Konstruktor.
Er hat sich da nicht ganz exakt ausgedrückt. Ich hatte das Verständnis, dass diese Klasse PointTester vorgegeben war. Diese Kommentare a.la. 1. / 2. / 3. ... haben dieses Gefühl bei mir ausgelöst.
Das Design liegt mir aber immer noch etwas schwer im Magen. Eine Methode, die einen zufälligen Punkt erstellt - gehört dies wirklich zu einer Klasse Point? Das ist ja eigentlich kein normales Verhalten eines Punktes. Aber dafür ist ein Punkt auch einfach zu abstrakt denke ich mal. Da müsste man ggf. das ganze Objektmodell sehen, um hier sauber urteilen zu können denke ich mal. Oder mein Gefühl täuscht mich zu sehr, weil ich hier zu sehr in Richtung POJO tendiere.
Hallo,
genau, die PointTester Klasse war vorgegeben. Deshalb muss die Methode auch so aufgerufen werden... anders wäre ich schneller auf das Ergebnis gekommen.
Danke