Hallo,
da ist er wieder!
Wir haben eine Aufgabe bekommen, in der wir mit Vererbung arbeiten sollen. Es soll eine Superklasse, drei Unterklassen und eine Testklasse entworfen werden.
Ich habe mich also an den Rechner geworfen und die Aufgabe 'gelöst'!
Allerdings habe ich das Gefühl, dass ich die Vererbung nicht wirklich nutze.
Könnt ihr bitte mal einen Blick auf die Super-, eine Unterklasse und die Testklasse werfen?
Dankeschön!
Superklasse:
Unterklasse:
Testklasse:
da ist er wieder!
Wir haben eine Aufgabe bekommen, in der wir mit Vererbung arbeiten sollen. Es soll eine Superklasse, drei Unterklassen und eine Testklasse entworfen werden.
Ich habe mich also an den Rechner geworfen und die Aufgabe 'gelöst'!
Allerdings habe ich das Gefühl, dass ich die Vererbung nicht wirklich nutze.
Könnt ihr bitte mal einen Blick auf die Super-, eine Unterklasse und die Testklasse werfen?
Dankeschön!
Superklasse:
Code:
/**
* Punkt.java
* Klasse, die vererbt!
*/
// Superklasse
public class Punkt {
protected double x,y;
// Konstruktor (public entfernt, da public Standard ist
Punkt(double x, double y) {
// this.x bezieht sich auf die Instanzvariable x
// Dieser wird der übergebene Wert (Argument) zugewiesen
this.x = x;
this.y = y;
}
/**
* @return x,y Koordinaten eines Punktes werden zurueckgegeben.
*/
// Methode
public String text(){
return new String("(" + x + ", " + y + ")");
}
/** Gibt die Koordinaten des Punktes (x,y) aus.
* Ruft dazu die Methode text().
* @return Formatierte Ausgabe der Punktkoordinaten.
* @see Punkt#text()
*/
public String toString(){
return new String("Punkt: " + text());
}
}
// Ende Superklasse Punkt
Unterklasse:
Code:
// Unterklasse Quadrat
class Quadrat extends Punkt {
//
double deltaX;
// parametrisierter Konstruktor
Quadrat (double dX, double x, double y) {
// Aufruf des Konstruktors aus der Superklasse
// Wieso soll der Konstruktor der Superklasse aufgerufen werden?
// Die Parameter werden doch bei Objekterzeugung übergeben!
super (x, y);
//
deltaX = dX;
}
// Methode mit Rückgabewert des Typs double, zur Ausgabe von deltaX
double getDeltaX() {
return deltaX;
}
// Methode mit Rückgabewert des Typs double, zur Ausgabe des Umfangs
double getUmfang(){
return 2 * (2 * deltaX) + 2 * (2 * deltaX);
//return 2 * x + 2 * y;
}
}
// Ende Unterklasse Quadrat
Testklasse:
Code:
// Testklasse
class DemoPunkt {
public static void main (String args[]) {
// Objekterstellung
Punkt pu = new Punkt(20.0,20.0);
Quadrat qu = new Quadrat(20.0,20.0,20.0);
Rechteck re = new Rechteck (30.0,5.0,20.0,20.0);
Kreis kr = new Kreis(12.0,20.0,20.0);
// Ausgabe der Koordinaten von Punkt
System.out.println("Daten Punkt:");
System.out.println("Koordinaten von " + pu.toString() + "\n");
// Ausgabe des Umfangs des Quadrates
System.out.println("Daten Quadrat:");
System.out.println("Koordinaten von " + qu.toString());
System.out.println("Das Quadrat hat folgenden Umfang: " + qu.getUmfang());
System.out.println("DeltaX (Die Haelfe einer Seitenlaenge) betraegt: " + qu.getDeltaX() + "\n");
// Ausgabe des Fläche des Rechteckes
System.out.println("Daten Rechteck:");
System.out.println("Koordinaten von " + re.toString());
System.out.println("Das Rechteck hat folgende Flaeche: " + re.getFlaeche());
System.out.println("DeltaY (Die Haelfe der anderen Seitenlaenge) betraegt: " + re.getDeltaY() + "\n");
// Ausgabe des Umfangs und Flaeche des Kreises
System.out.println("Daten Kreis:");
System.out.println("Koordinaten von " + re.toString());
System.out.println("Der Kreis hat folgende Flaeche: " + kr.getFlaeche());
System.out.println("Der Kreis hat folgenden Umfang: " + kr.getUmfang());
}
}