Hallo liebe Java-Freunde und (hoffentlich) zukünfitige Kollegen,
ich habe eine etwas komplexere Aufgabe und weiß nicht, ob das was ich gemacht habe richtig ist und vor allem nicht, wie ich die Instanzvarriabelen von einem Objekt ändere, dass mit einer Konstruktormethode aus einer anderen Klasse erstellt wurde.
Meine Aufgaben sind folgende:
1.
Schreiben Sie eine Instanzmethode
public void shift(double weite)
,
die den Punkt um die angege-
bene Weite waagerecht auf der
Zeichenebene verschiebt.
- Schreiben Sie eine Instanzmethode
public void lift(double weite)
,
die den Punkt um die angege-
bene Weite senkrecht auf der
Zeichenebene verschiebt.
•
Hinweis:
Positive Werte für den Parameter weite sollen eine Verschiebung
des Punktes nach rechts bzw. oben bewirken, negative Werte eine Ver-
schiebung nach links bzw. unten.
Meine Lösung (müsste eigentlich schon stimmen?):
Nun kommt die nächste Aufgabe, bei der ich nicht weiß, wie ich den X bzw. Y Wert des Punktes a zum verschieben des Rechteckes verändern soll!
b) Erweitern Sie die Klasse RechteckMi:
- Schreiben Sie zwei Instanzmethoden
shift
und
lift
, die in Analogie zu den
Methoden der Klasse Punkt das gesam-
te Rechteck waagerecht bzw. senk-
recht verschieben.
- Schreiben Sie außerdem die Instanz-
methoden
showA, showB, showC,
showD, showBreite, showHoehe
sowie showFlaeche
, welche die
Eckpunkte A, B, C bzw. D sowie die
Länge, die Breite bzw. die Fläche des
Rechtecks in geeigneter Weise auf der Konsole zur Anzeige bringen.
Meine jetzige Lösung:
Nun zur letzten Aufgabe. Hier weiß ich nicht, wie die main Methode die Methoden aus Aufgabe 2 aufrufen kann muss ich die globalen Varriabelen auf "static" setzen, damit alles überhopt ausgeführt werden kann?
Schreiben Sie nun noch eine
Klasse namens Rechtecktest
, deren main-
Methode unter Nutzung der Klasse RechteckMi
- eine Instanz der Klasse RechtechMi erzeugt,
- das erzeugte Rechteck zunächst senkrecht, dann waagerecht verschiebt
- und anschließend die Koordinaten der Eckpunkte des Rechtecks sowie
dessen Länge, Breite und Fläche auf der Konsole anzeigt
Da komme ich gar nicht weiter.
ich habe eine etwas komplexere Aufgabe und weiß nicht, ob das was ich gemacht habe richtig ist und vor allem nicht, wie ich die Instanzvarriabelen von einem Objekt ändere, dass mit einer Konstruktormethode aus einer anderen Klasse erstellt wurde.
Meine Aufgaben sind folgende:
1.
Schreiben Sie eine Instanzmethode
public void shift(double weite)
,
die den Punkt um die angege-
bene Weite waagerecht auf der
Zeichenebene verschiebt.
- Schreiben Sie eine Instanzmethode
public void lift(double weite)
,
die den Punkt um die angege-
bene Weite senkrecht auf der
Zeichenebene verschiebt.
•
Hinweis:
Positive Werte für den Parameter weite sollen eine Verschiebung
des Punktes nach rechts bzw. oben bewirken, negative Werte eine Ver-
schiebung nach links bzw. unten.
Meine Lösung (müsste eigentlich schon stimmen?):
Java:
public class Punkt {
private double x ;
private double y;
public Punkt(double x, double y){
this.x = x;
this.y = y;
}
public Punkt(){
System.out.println("Erzeugen einer Instanz der Klasse Punkt");
System.out.println("geben Sie die x-Koordinate des Punktes an:");
this.x = EAM.rDouble();
System.out.println("geben Sie die y-Koordinate des Punktes an:");
this.y = EAM.rDouble();
}
public double getX() {
return this.x;
}
public double getY() {
return this.y;
}
// selbst ab hier
public void shift (double weite){
System.out.println("Wie weit möchten Sie den Punkt verschieben (X-Achse)?");
weite = EAM.rDouble();
this.x= x + weite;
}
public void lift (double weite){
System.out.println("Wie weit möchten Sie den Punkt verschieben (Y-Achse)?");
weite = EAM.rDouble();
this.y= y + weite;
}
}
Nun kommt die nächste Aufgabe, bei der ich nicht weiß, wie ich den X bzw. Y Wert des Punktes a zum verschieben des Rechteckes verändern soll!
b) Erweitern Sie die Klasse RechteckMi:
- Schreiben Sie zwei Instanzmethoden
shift
und
lift
, die in Analogie zu den
Methoden der Klasse Punkt das gesam-
te Rechteck waagerecht bzw. senk-
recht verschieben.
- Schreiben Sie außerdem die Instanz-
methoden
showA, showB, showC,
showD, showBreite, showHoehe
sowie showFlaeche
, welche die
Eckpunkte A, B, C bzw. D sowie die
Länge, die Breite bzw. die Fläche des
Rechtecks in geeigneter Weise auf der Konsole zur Anzeige bringen.
Meine jetzige Lösung:
Java:
public class RechteckMi {
private Punkt a;
private Punkt c;
private Punkt b;
private Punkt d;
public RechteckMi(){
System.out.println("Festlegen des Eckpunktes A:");
this.a = new Punkt();
System.out.println("Festlegen des Eckpunktes C:");
this.c = new Punkt();
}
public double getHoehe(){
double ax = a.getX();
double cx = c.getX();
double hoehe = cx - ax;
return hoehe;
}
public double getBreite(){
double ay = a.getY();
double cy = c.getY();
double breite = cy - ay;
return breite;
}
public void showHoehe(){
System.out.println(getHoehe());
}
public void showBreite(){
System.out.println(getBreite());
}
public void showFlaeche(){
double flaeche = getHoehe() * getBreite();
System.out.println("Die Flaeche ist: " + flaeche);
}
public void showA(){
double x = a.getX();
System.out.println(" A/x= " + x);
double y = a.getY();
System.out.println(" A/y= " + y);
}
public void showB (){
double bx = c.getX() ;
double by = a.getY() ;
System.out.println("B hat die Koordinaten X: " + bx + " und Y: " + by);
b = new Punkt(bx, by);
}
public void showC(){
double x = c.getX();
System.out.println(" C/x= " + x);
double y = c.getY();
System.out.println(" C/y= " + y);
}
public void showD (){
double dx = a.getX() ;
double dy = c.getY() ;
System.out.println("D hat die Koordinaten X: " + dx + " und Y: " + dy);
d = new Punkt(dx, dy);
}
public void lift (double weite){
System.out.println("Wie weit möchten Sie den Punkt verschieben (Y-Achse)?");
weite = EAM.rDouble();
double z = a.getY() + weite;
a = new Punkt (a.getX(), z);
}
}
Nun zur letzten Aufgabe. Hier weiß ich nicht, wie die main Methode die Methoden aus Aufgabe 2 aufrufen kann muss ich die globalen Varriabelen auf "static" setzen, damit alles überhopt ausgeführt werden kann?
Schreiben Sie nun noch eine
Klasse namens Rechtecktest
, deren main-
Methode unter Nutzung der Klasse RechteckMi
- eine Instanz der Klasse RechtechMi erzeugt,
- das erzeugte Rechteck zunächst senkrecht, dann waagerecht verschiebt
- und anschließend die Koordinaten der Eckpunkte des Rechtecks sowie
dessen Länge, Breite und Fläche auf der Konsole anzeigt
Da komme ich gar nicht weiter.