Moin moin,
folgendes Problem. Ich hab die Klasse Punkt, in der die Methode bewegeUm ist. Dann habe ich die Klasse Rechteck, die als linke-obere Ecke des Rechtecks einen new Punkt nimmt. Jetzt soll das gesamte Rechteck um dx und dy verschoben werden und dafür möchte ich auf die Methode aus Punkt zugreifen um das zu tun. Jetzt weiß ich nicht wie das geht. Mit Klasse.Methode(Atribute) hab ich es probiert und da sagt er mir nach dem ersten "d" von dx, dass ".class" erwartet wird und am Ende ein ; fehlt, obwohl es da ist.
Jede Hilfe wird dankend entgegen genommen.
Klasse Rechteck
Klasse Punkt
folgendes Problem. Ich hab die Klasse Punkt, in der die Methode bewegeUm ist. Dann habe ich die Klasse Rechteck, die als linke-obere Ecke des Rechtecks einen new Punkt nimmt. Jetzt soll das gesamte Rechteck um dx und dy verschoben werden und dafür möchte ich auf die Methode aus Punkt zugreifen um das zu tun. Jetzt weiß ich nicht wie das geht. Mit Klasse.Methode(Atribute) hab ich es probiert und da sagt er mir nach dem ersten "d" von dx, dass ".class" erwartet wird und am Ende ein ; fehlt, obwohl es da ist.
Jede Hilfe wird dankend entgegen genommen.
Klasse Rechteck
Code:
import java.awt.Color;
public class Rechteck
{
private Punkt position; //Linke-obere Ecke
private int breite; //x-Richtung
private int laenge; //y-richtung
private String bezeichnung; //Text(String); z.B. "Tisch" oder "Schrank"
private Color farbe; // mit Color.red; Color.yellow; usw. implementieren
private int dx;
private int dy;
public Rechteck()
{
position = new Punkt();
breite = 0;
laenge = 0;
bezeichnung = "";
farbe = Color.red;
}
public Rechteck(Punkt position, int breite, int laenge, String bezeichnung, Color farbe)
{
this.position = position;
this.breite = breite;
this.laenge = laenge;
this.bezeichnung = bezeichnung;
this.farbe = farbe;
}
public Punkt setPosition(Punkt position) ///?
{
this.position = position;
return position;
}
public Punkt getPosition()
{
return position;
}
public void setBreite(int breite)
{
this.breite = breite;
}
public int getBreite()
{
return breite;
}
public void setLaenge(int laenge)
{
this.laenge = laenge;
}
public int getLaenge()
{
return laenge;
}
public void setBezeichnung(String bezeichnung)
{
this.bezeichnung = bezeichnung;
}
public String getBezeichnung()
{
return bezeichnung;
}
public void setFarbe(Color farbe)
{
this.farbe = farbe;
}
public Color getFarbe()
{
return farbe;
}
public void bewegeUm(int dx, int dy)
{
Punkt.bewegeUm(int dx, int dy);
}
}
Klasse Punkt
Code:
import java.io.*;
import java.util.*;
import static java.lang.Math.sqrt;
public class Punkt
{
private int x;
private int y;
private int dx;
private int dy;
private int x1;
private int y1;
private double d;
public Punkt()
{
}
public Punkt(int x, int y)
{
this.x = x;
this.y = y;
}
public void setX(int x) //einlesen über Scanner (Konsole) ist an dieser Stelle für die spätere Verwendung nicht hilfreich. Später wollen Sie in einer anderen Klasse auf die Methode setX() zugreifen und einen Wert übergeben,
//ohne eine Konsoleneingabe aufzurufen. Deshalb übergibt man meistens etwas in dieser Form: public void setX(int x){this.x = x;}
{
this.x = x;
}
//mit Rückgabe ist nicht die Aufgabe auf der Konsole gemeint, sondern die Rückgabe im Programm, so dass eine andere Methode auf den Wert zugreifen kann. Das wäre somit eine sondierende methode: public int getX(){return x;}
public int getX()
{
return x;
}
public void setY(int y)
{
this.y = y;
}
public int getY()
{
return y;
}
public void setBoth(int x, int y)
{
this.x = x;
this.y = y;
}
public void ausgabeAtribute()
{
System.out.println("X = " + x + "\n" + "Y = " + y);
}
public void bewegeUm(int dx, int dy)
{
this.dx = dx;
this.dy = dy;
x = x + dx;
y = y + dy;
}
public double gibAbstand(int x1, int y1)
{
this.x1 = x1;
this.y1 = y1;
this.d = sqrt(((x1-x)*(x1-x))+((y1-y)*(y1-y)));
return d;
}
}