schets met constructor met argumenten in de class "Vierkant" terug naar de inleiding
Zie ook "ster en veelhoekvormen" een toepassing van polymorfism
De constructor van de class , "Vierkant" heeft nu de argumenten x,y (is het middelpunt) en de argumenten b (breedte) en h (hoogte)
Het is nu beter om de class naam te veranderen in "Rechthoek"
De constructors van de class "Cirkel" en de superclass "Vormen" zijn nog leeg.
De schets
// De constructor van de class "Vierkant: heeft de argumenten x, y, b en h.
//1) Declareren van de objecten van het type Vormen
Vormen vormen1;
Vormen vormen2;
Ruitjes ruitjespap;
//Declareren van de objecten van het type Cirkel en Vierkant mag ook
//men spreekt van inheritance
//want de objecten erven eigenschappen van de superclass "Vormen"
//Cirkel vormen1;
//Vierkant vormen2;
void setup() {
size(480, 270);
float y = height/2;
float x = width/2;
float n = width/5;
//2) construeren van de objecten
ruitjespap = new Ruitjes(n,x,y);
vormen1 = new Cirkel();
vormen2 = new Vierkant(x, y, n*2, n);
}
//3) tekenen van de objecten
void draw() {
background(255);
ruitjespap.display();
vormen1.display();
vormen2.display();
}
De super- of parent class
class Vormen {
Vormen() { // de lege constructor
}
void display() {
//Dit is de lege display methode die wordt overreden in de "Cirkel" en "Vierkant" subclassen
//ivm overriding moeten alle methodes van de subclasses ook in de superclass staan
}
}
De subclass Vierkant nu met een constructor met de argumenten x, y, b, en h
class Vierkant extends Vormen {
//de constructor variabelen moeten global worden gedeclareerd
//dit omdat ze in de methode display() worden gebruikt
float x; float y;
float b; float h;
Vierkant(float x_, float y_, float b_, float h_) { // de lege constructor
//De locale variabelen x_, y_, b_, en h_, krijgen hun waarden van de constructor van de schets
x = x_; y = y_; //De locale constructor variabelen copieeren naar globale variabelen
b = b_; h = h_;
}
void display() {
rectMode(CENTER);
fill(175);
stroke(0);
rect(x, y, b, h);
}
}
de subclass "Cirkel"
class Cirkel extends Vormen {
Cirkel() { // de lege constructor
}
void display() {
ellipseMode(CENTER);
stroke(0);
ellipse(width/4, height/4, 40, 40);
}
}