Implementierung
Setzen Sie den Entwurf in funktionierenden Code um: Definieren Sie die Basisklasse, implementieren Sie konkrete Formen und geben Sie Ergebnisse aus einer gemischten Liste aus.
Implementierung ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.
Zusammenfassung des Plans
Wir implementieren zunächst die Basis Shape mit area() und perimeter() und fügen anschließend Circle und Rectangle hinzu. Halten Sie Namen kurz und Berechnungen übersichtlich. Verwenden Sie für die Ausgabe bevorzugt kleine Hilfsmethoden.
Code: Basis + Circle
Die Basisklasse definiert die API und eine kleine info()-Hilfsmethode. Circle implementiert die Berechnungen und toString() für eine übersichtliche Ausgabe.
public class Main {
// Base class with a tiny print helper
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() {
return String.format("area=%.2f, per=%.2f", area(), perimeter());
}
}
static class Circle extends Shape {
double radius;
Circle(double r) {
// simple guard to avoid negative sizes for beginners
radius = (r < 0) ? 0 : r;
}
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
public static void main(String[] args) {
Shape s = new Circle(2.5);
System.out.println(s); // prints Circle area/perimeter
}
}
Konstruktoren und Absicherungen
Konstruktoren setzen die Felder. Für Einsteiger sichern wir negative Eingaben ab, indem wir sie auf null begrenzen. In realen Anwendungen verwendet man Validierung oder Ausnahmen, aber hier halten wir es einfach.
Code: Rectangle hinzufügen
Rectangle wird Teil der Hierarchie und verwendet dieselbe API. Beachten Sie, dass beide Formen mit demselben Code ausgegeben werden können, weil die Basisklasse den Vertrag definiert.
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() { return String.format("area=%.2f, per=%.2f", area(), perimeter()); }
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = (r < 0) ? 0 : r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) {
this.w = (w < 0) ? 0 : w;
this.h = (h < 0) ? 0 : h;
}
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
public String toString() { return "Rectangle " + info(); }
}
public static void main(String[] args) {
Shape a = new Circle(3.0);
Shape b = new Rectangle(4.0, 2.0);
System.out.println(a);
System.out.println(b);
}
}
Listen und Ausgabe
Eine Liste von Shape ermöglicht es, Circle und Rectangle zu mischen. Eine einfache Schleife kann jedes Element ausgeben. Für die mobile Ausgabe sollte eine Form pro Zeile stehen und Zahlen sollten auf zwei Dezimalstellen formatiert werden.
Code: Kleiner Bericht
Bericht: Eine kleine Schleife gibt für jede Form den Typ und eine Zusammenfassung aus. Polymorphie hält die Schleife übersichtlich, während jede Form ihre eigenen Berechnungen bereitstellt.
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String label() { return getClass().getSimpleName(); }
String info() { return String.format("area=%.2f, per=%.2f", area(), perimeter()); }
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = (r < 0) ? 0 : r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) { this.w = (w < 0) ? 0 : w; this.h = (h < 0) ? 0 : h; }
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
}
public static void main(String[] args) {
Shape[] shapes = { new Circle(1.2), new Rectangle(2.0, 3.0), new Circle(0.5) };
for (int i = 0; i < shapes.length; i = i + 1) {
Shape s = shapes[i];
System.out.println(s.label() + " -> " + s.info());
}
}
}
Überprüfung der Implementierung
Kurze Überprüfung: Was ist für jede konkrete Form in dieser Hierarchie erforderlich?
Zusammenfassung
Zusammenfassung: Wir haben Shape, Circle und Rectangle implementiert, einfache Absicherungen hinzugefügt und aus einer gemischten Liste einen kleinen Bericht ausgegeben. In der nächsten Lektion geht es um polymorphes Verhalten, etwa das Sortieren nach Fläche.
Häufig gestellte Fragen
Ist die Lektion „Implementierung“ kostenlos?
Ja — der vollständige Text von „Implementierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Implementierung“?
Setzen Sie den Entwurf in funktionierenden Code um: Definieren Sie die Basisklasse, implementieren Sie konkrete Formen und geben Sie Ergebnisse aus einer gemischten Liste aus. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.
Wie lange dauert die Lektion „Implementierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Entwurf
- Implementierung
- Polymorphe Verhaltensweisen