Implementatie
Zet het ontwerp om in werkende code: definieer de basisklasse, implementeer concrete vormen en druk resultaten af vanuit een gemengde lijst.
Implementatie is een gratis Java Academy-les op CoddyKit. Dit is les 2 van 3. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 3 lessen.
Samenvatting van het plan
We coderen de basis Shape met area() en perimeter(), en voegen daarna Circle en Rectangle toe. Houd namen kort en berekeningen leesbaar, en geef de voorkeur aan kleine hulpfuncties voor het afdrukken.
Code: basis en Circle
De basisklasse definieert de API en een kleine info()-hulpmethode. Circle implementeert de berekening en toString() voor duidelijke uitvoer.
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
}
}
Constructors en controles
Constructors stellen velden in. Voor beginners kun je negatieve invoer afvangen door die op nul af te kappen. In echte apps gebruik je validatie of uitzonderingen, maar hier houden we het eenvoudig.
Code: Rectangle toevoegen
Rectangle wordt onderdeel van de hiërarchie en gebruikt dezelfde API. Omdat de basis het contract definieert, kunnen beide vormen met dezelfde code worden afgedrukt.
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);
}
}
Lijsten en afdrukken
Met een lijst van Shape kun je Circle en Rectangle combineren. Een eenvoudige lus kan elk item afdrukken. Houd voor mobiele uitvoer één vorm per regel en maak getallen op met twee decimalen.
Code: klein rapport
Rapport: een kleine lus drukt voor elke vorm het type en een samenvatting af. Dankzij polymorfisme blijft de lus overzichtelijk, terwijl elke vorm haar eigen berekening levert.
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());
}
}
}
Controle van de implementatie
Korte controle: wat is vereist voor elke concrete vorm in deze hiërarchie?
Samenvatting
Samenvatting: We hebben Shape, Circle en Rectangle gecodeerd, eenvoudige controles toegevoegd en een klein rapport vanuit een gemengde lijst afgedrukt. Volgende les: polymorf gedrag, zoals sorteren op oppervlakte.
Leer Java met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 104
- Lessen
- 374
Veelgestelde vragen
Is de les “Implementatie” gratis?
Ja — de volledige tekst van “Implementatie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 3 lessen.
Wat leer ik in “Implementatie”?
Zet het ontwerp om in werkende code: definieer de basisklasse, implementeer concrete vormen en druk resultaten af vanuit een gemengde lijst. Je oefent met Java Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Java Academy te beginnen?
Ervaring vooraf is niet nodig. Java Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 3.
Hoe lang duurt de les “Implementatie”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Java Academy?
Ja. Elke les over Java Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Ontwerp
- Implementatie
- Polymorf gedrag