3.
Lösungsmöglichkeit
Zunächst wird eine Klasse RechteckProgrammn entworfen :
Schritt 1: Eine
Methode enthält die gesamte Funktionalität |
Schritt 2: Verlagerung
der Funktionalität in passende Methoden |
public class
RechteckProgramm4 {
//Deklarationsteil
private Bildschirm bildschirm;
private Stift stift;
private Maus maus;
public void fuehreAus()
{
bildschirm=new Bildschirm();
stift = new Stift();
maus = new Maus();
stift.hoch();
stift.bewegeBis(20,20);
stift.zeichneRechteck(100,100);
while (!maus.istGedrueckt()){;}
maus.gibFrei();
stift.gibFrei();
bildschirm.gibFrei();
}
}
|
public class
RechteckProgramm5 {
//Deklarationsteil
private Bildschirm bildschirm;
private Stift stift;
private Maus maus;
public void init()
{
bildschirm=new Bildschirm();
stift = new Stift();
maus = new Maus();
}
public void gibFrei()
{
maus.gibFrei();
stift.gibFrei();
bildschirm.gibFrei();
}
public void zeichnen()
{
stift.hoch();
stift.bewegeBis(20,20);
stift.zeichneRechteck(100,100);
}
public void fuehreAus()
{
this.init();
this.zeichnen();
while (!maus.istGedrueckt()){;}
this.gibFrei();
}
}
|
Es wird eine zweite Klasse Programm deklariert, deren (einzige) Aufgabe
darin besteht, ein Objekt des Rechteckprogramms zu erzeugen und dieses zur Ausführung
seiner Funktionalität zu veranlassen:
Beispiel für Rechteckprogramm4
public class StartProgramm
public static void main(String[] s)
{
RechteckProgramm4 rp4;
rp4 = new RechteckProgramm4();
/* rp4 ist ein Objekt der Klasse RechteckProgramm4 */
rp4.fuehreAus();
}
}
Im Anfangsunterricht kann der Umgang mit der Klasse StartProgramm als
allgemeines Schema vorgegeben werden. Eine Erklärung statischer Methoden insbesondere von
main braucht erst zu einem späteren Zeitpunkt zu
erfolgen.
Auch auf die Deklaration von Konstruktoren sollte in den Einstiegsbeispiele verzichtet
werden. Dies wird erst interessant beim Entwurf von Objekten interessant. Die Erzeugung
von Objekten mittels new Klassenname() kann zunächst als
Verfahren angegeben werden. Man sollte auch auf den hier als erste Lösungsmöglichkeit
gegebenen Ansatz als Vorläufer des zuletzt genannten verzichten, da er nur auf ganz
einfache Aufgabenstellungen vernünftig anzuwenden ist und ein Übergang zu den anderen
Lösungen eine Erklärung zu einem frühen Zeitpunkt erforderlich macht, die bei direkter
Vorgabe dieses Ansatzes zurückgestellt werden kann.
Es empfiehlt sich, die Grundstruktur der im Einstiegsunterricht benutzten Programme als
Schablonen (s.oben) zur Verfügung zu stellen. |