Hey. Ich habe ein Problem. Ich habe eine Aufgabe, in der ich eine Klasse Figur erstellen sollte, dann erbende Klassen: Rechteck, Kreis, usw. (alle Klassen zeige ich unten, die sollen richtig sein). Dann soll ich in der Klasse TestGeometrie die Flaechen von den Figuren, die als ein Array erzeugt wurden, vergleichen. Java zeigt mir dumme Fehler beim Kompilieren, zB. Java sagt mir, in einer Schleife ploetzlich ein ';' zu stecken. Ich glaube, ich habe irgendwo ein Fehler gemacht, aber nach den ganzen Tag habe ich ihn weiter nicht gefunden ;/ kann mir jemand Quell-Code pruefen? Ich waere fuer die Hilfe sehr dankbar!
Java:
/**
* Modelliert eine Figur mit x- und y-Koordinaten, welche
* um dx,dy verschoben werden koennen.
*/
public class Figur {
/** Attribute */
private double pos_x; // x-Koordinate
private double pos_y; // y-Koordinate
/** Methoden */
// Konstruktor
public Figur(double pos_x, double pos_y) {
this.pos_x = pos_x;
this.pos_y = pos_y;
}
// Getter
public double getPosX() {
return pos_x;
}
public double getPosY() {
return pos_y;
}
// andere Methoden
// verschiebt die Figur um dx in x-Richtung und um dy in y-Richtung
public void verschieben(double dx, double dy) {
pos_x += dx;
pos_y += dy;
}
// gibt einen String mit den Koordinaten zurueck
public String toString() {
return "Diese Figur hat die Mittelpunkt-Koordinaten ("+ pos_x+", "+pos_y+")";
}
}
Java:
public class Kreis extends Figur {
//zusaetzliche Attribute
private double radius;
//parametrisierter Konstruktor
public Kreis(double pos_x, double pos_y, double radius) {
super(pos_x, pos_y);
this.radius = radius;
}
//Methoden
public double berechneFlaeche() {
double flaeche = Math.PI * this.radius * this.radius;
return flaeche;
}
//toString - Methode
public String toString(){
return "Dieser Kreis hat die Mittelpunkt-Koordinaten (" + pos_x + ", " + pos_y + "), den Radius " + this.radius + " und die Flaeche " + flaeche + ".";
}
}
Java:
public class Rechteck extends Figur {
//zusaetzliche Attribute
private double laenge;
private double breite;
//parametrisierter Konstruktor
public Rechteck(double pos_x, double pos_y, double laenge, double breite) {
super(pos_x, pos_y);
this.laenge = laenge;
this.breite = breite;
}
//Methoden
public double getLaenge(){
return laenge;
}
public double berechneFlaeche(){
double flaeche = laenge * breite;
return flaeche;
}
public String toString(){
return ""Dieses Rechteck hat die Mittelpunkt-Koordinaten (" + pos_x + ", " + pos_y + "), die Laenge " + this.laenge + ", die Breite " + this.breite + " und die Flaeche " + flaeche + ".";
}
}
Java:
public class Quadrat extends Rechteck {
//parametrisierter Konstruktor
public Kreis(double pos_x, double pos_y, double laenge, double breite) {
rechteck(pos_x, pos_y, laenge, breite = laenge);
}
//Methoden
public String toString() {
return "Dieses Quadrat hat die Mittelpunkt-Koordinaten (" + pos_x + ", " + pos_y + "), die Laenge " + rechteck.getLaenge() + " und die Flaeche " + rechteck.flaeche() + ".";
}
}
Java:
public class TestGeometrie{
public static void main(String[] args){
//Die Implementierte Klassen werden getestet.
Figur figur[] = new Figur[5];
//Objekte von verschiedenen Klassen erzeugen
Figur figur1 = new Figur(0.0, 0.0);
Kreis kreis1 = new Kreis(1.5, 0.0, 0.5);
Kreis kreis2 = new Kreis(0.0, 2.5, 1.0);
Rechteckt rechteck1 = new Rechteck(-2.0, 0.0, 1.0, 2.0);
Quadrat quadrat1 = new Quadrat(0.0, -2.0, 1.0, 1.0);
//Objekte den Elementen des Arrays zuweisen
figur[0] = figur1;
figur[1] = kreis1;
figur[2] = kreis2;
figur[3] = rechteck1;
figur[4] = quadrat1;
//fuer jedes Element des Arrays die Methode toString anwenden
for(int i = 0, i < figur.length, i++){
figur[i].toString();
}
//Figur mit maximalen Flaeche finden
double max = 0;
for(int i = 0, i < figur.length - 1, i++){
if(figur[i].berechneFlaeche() > max){
max = figur[i];
}
}
return max;
int i;
if(figur[i].berechneFlaeche = max){
return i;
}
System.out.println("Die Maximale Flaeche der " + figur.length + " Figuren ist " + max + " mit Index " + i + ".");
//Elemente des Arrays verschieben
for(int i = 0, i<figur.length, i++){
figur[i].verschieben(10.0, 20.0);
}
//fuer jedes Element des Arrays erneut die Methode toString anwenden
for(int i = 0, i < figur.length, i++){
figur[i].toString();
}
}
}