Hallo,
Ich finde die Aufgabe für einen Anfänger schon recht schwierig und bräuchte da einen Rat. Ich wollte so in etwa anfangen:
public class Kreis extends Punkt {
protected double radius;
bis dahin sollte das in Ordnung gehen, obwohl ich nicht ganz einsehen kann, warum du hier "protected" gesetzt hast
Weil er die Variable nicht public machen wollte, trotzdem aber
die Verwendung durch eine ableitende Klasse ermöglichen wollte, was
mit private nicht gehen würde. "protected" ist hier also perfekt.
(Der Zugriff ist dann natürlich nur über öffentliche Getter und
Setter möglich -- klassenintern natürlich auch ohne.)
public Kreis(double x, double y, double radius)
Das ist aber problematisch. Du hast bereits deine Klassendefinition vorgenommen, und jetzt willst du noch eine Methode "Kreis" reinbasteln? Nenne die Methode anders, dann könnte es getrost so weitergehen:
Ääh, Christoph, bist du dir sicher, was du da schreibst? ;-)
Er definiert hier einen Konstruktor für seine Kreis-Klasse, der eben
den x-Wert, den y-Wert und den Radius des Kreises entgegen nimmt.
Folgendes ist absolut korrekt.
super(x, y);
Hier ruft er den Konstruktor der Super-
Klasse auf und übergibt dem den x- und y-Wert. (Er spart sich damit
die Wiederholung des Codes, der schon im Konstruktor der Super-
Klasse steht. Das ganze ist die Anwendung des Vererbungsprinzip und
so absolut sinnvoll und gewollt.)
this.radius = radius;
Das ist nicht ganz einleuchtend, könnte aber funktionieren.
Das ist gängige Praxis und absolut korrekt.
Oder ist das schon völliger blödsinn?
Nein, das ist alles genau so, wie es die Aufgabenstellung erfordert
und wie es von dir umgesetzt werden soll. Du hast es (soweit)
verstanden!
Gruß
Slyh
Es gibt 10 Arten von Menschen. Solche, die das Binärsystem verstehen, und solche, die es nicht verstehen.