Einstieg mit Anwendungen

[Startseite]


Nach oben ] Diskussion von Realisierungsmöglichkeiten der Einführungsbeispiele ][ Einstieg mit Anwendungen ] Einstieg mit Applets ]

Erstellen von Anwendungen mit Hilfe einer Schablone

Bereits bei den ersten Anwendungen, die die Schülerinnen und Schüler realisieren, sind eine Reihe von JAVA-Eigenschaften zu berücksichtigen, die zu diesem frühen Zeitpunkt  im Unterricht nicht näher erläutert werden können (und müssen). Es empfiehlt sich, für die ersten Anwendungen eine Schablone vorzugeben, an die sich die Schülerinnen und Schüler halten können. Zu einem späteren Zeitpunkt, wenn Objektentwurf und Ereignisbearbeitung im Unterricht behandelt wurden, ist eine Erklärung sinnvoll und wird nun nachgereicht. Im übrigen ist es nicht verwunderlich, dass Vorgaben notwendig sind, schließlich ist JAVA objektorientiert und läßt damit einen klassischen Einstieg über Programme im herkömmlichen Sinne, wie etwa in PASCAL oder C nicht zu.

Um eine Anwendung zu erstellen, bedarf es der Implementierung einer Schnittstelle zwischen JAVA-Interpreter und Programm. Diese Schnittstelle ist eine Methode namens main, die folgender Deklaration folgen muß:

public static void main(String[] s)

Wird der Interpreter gestartet, so sucht er in der angegebenen Klasse nach dieser Methode und führt sie aus.

In den Anfangsbeispielen schlage ich folgenden Vorgehensweise vor:

Deklarieren Sie

  • eine Klasse, die ausschließlich die main-Methode enthält und in der das eigentliche Programm gestartet wird - genauer: es wird ein Objekt der Anwendungsklasse erzeugt und zur Ausführung aufgefordert

  • und eine Klasse, die die eigentliche Programmlogik enthält.

Deklarieren Sie in der Klasse, die die eigentliche Anwendung beinhaltet eine Methode namens führeAus und bringen Sie dort den algorithmischen Teil unter. Sie müssen auf jeden Fall alle Funktionalität in Methoden unterbringen, ein Hauptprogramm, wie in PASCAL gibt es nicht - es sei denn, sie nutzten main für diesen Zweck, wovon aber dringend abgeraten werden muß( siehe hierzu die Diskussion weiter unten) -. Es ist nicht zweckmäßig bereits zu diesem frühen Zeitpunkt über Methoden zu sprechen, vielmehr können Sie die Vorgehensweise gleichsam als Kochrezept einführen.

Ich empfehle , folgende Schablone (Datei Schablone1.txt) zur Realisierung der Einstiegsbeispiele des programmgesteuerten Zeichnens zu verwenden.   Beachten Sie auch im Vergleich den Einstieg über Applets.

/* Ersetze XXX überall durch den gleichen Bezeichner */
/* Speichere die Datei unter StartXXX.java */
import stiftUndCo.*;
public class StartXXX
{	
	public static void main(String[] s)
	{
     		XXX meinXXX = new XXX();
		meinXXX.führeAus();		
	}
}


class XXX 
{ 
	/* Deklaration der Objekte */
	Bildschirm bildschirm;
	Stift stift;
	
 	public void führeAus()
	{	/* Initialisierungsteil */
		bildschirm=new Bildschirm();
	  	stift=new Stift();
	  	/*Arbeiten, Aktionsteil */
		/* Hierher gehören die Anweisungen */
    		/* Aufräumen, Abbauteil */
		stift.gibFrei();
		//bildschirm.gibFrei();
	}

}

Bevor ein neues Programm erstellt wird, sollte die Schablone in die Entwicklungsumgebung oder einen Editor geladen werden. Das Bezeichnerfragment XXX sollte verändert werden und die Datei unter dem Namen StartXXX.JAVA (auch in diesem Namen muß das XXX entsprechend angepaßt sein) gespeichert werden.

Um die mit Hilfe der Leerschablone erstellten Anwendungen zu beenden, muß man lediglich in dem erzeugten Fenster oben rechts auf das Kreuz (Beenden-Symbol) klicken. Hiermit wird auch die Freigabe des Bildschirms veranlaßt. Würde die Zeile     //bildschirm.gibFrei();     nicht auskommentiert, so würde der Bildschirm unmittelbar nach der Aktion abgebaut, was dazu führen kann, daß die Aktion weitgehend unbemerkt bleibt. Sobald Schleifenkonstruktionen möglich sind, kann das Ende des Programms durch eine Schleife gesteuert werden: "Tue nichts bis die Maustaste gedrückt wurde".

Beispiel für eine Verwendung der Schablone:

Das Haus des Nikolaus

 

/* benötigte Klassenbeschreibungen für Stift und Bildschirm */
import stiftUndCo.*;

public class StartNikolaus1
{
	public static void main(String[] s)
	{
		Nikolaus1 klausi= new Nikolaus1();
		klausi.führeAus();
	}
}


class Nikolaus1
{

	/* verwendete Objekte */
	private Bildschirm meinBildschirm;
	private	Stift meinStift;

public void führeAus()
{
	/* Aufbau der Objekte */

	  meinBildschirm=new Bildschirm();
	  meinStift=new Stift();
 
	/* Nachrichtenteil */
	  meinStift.bewegeBis(100,100);
	  meinStift.runter();
	  meinStift.bewegeBis(140,100);
	  meinStift.bewegeBis(100,60);
	  meinStift.dreheBis(60);
	  meinStift.bewegeUm(40);
	  meinStift.dreheUm(-120);
	  meinStift.bewegeUm(40);
	  meinStift.bewegeBis(100,60);
	  meinStift.bewegeBis(100,100);
	  meinStift.bewegeBis(140,60);
	  meinStift.bewegeBis(140,100);

	/* Abbau der Objekte */
	  meinStift.gibFrei();
	  //meinBildschirm.gibFrei();
	}
}

 


Seitenanfang

© Georg Dick