:JAVA: Das EVA-PrinzipBetrachte folgendes Applet, gib eine Zahl bei Eingabe ein und klicke auf Bearbeiten!
Wie wird die Eingabe verarbeitet, was ist die Ausgabe?
|
|||||||
|
Lade nun das "tempelprojekt.sit" auf den Rechner und entpacke es:
| Download | |||
|---|---|---|---|
| Des Projekts | Quelltexte anschauen | ||
| Stuffit-Expander™ | Zip | ./. | |
| tempelprojekt.sit | tempelprojekt.zip | Arbeiterklasse.java.txt | Applet1.java.txt |
Öffne das Projekt im JBuilder und betrache die Datei "Arbeiterklasse".
Ändere die Verarbeitung so, dass nun eingabe * 4 +3 ausgeben wird und teste das Programm!
Euer "Sandkasten" wird für die nächsten Aufgaben ein Arbeiterklassen-Objekt sein, eine stark vereinfachte Umgebung (schaut euch doch mal das Applet1 an).
Damit ihr versteht wie der Sandkasten funktioniert, hier ein Denk-Modell zu dem Quelltext:
![]() |
public class Arbeiterklasse {
public int eingabe; // Variable fuer die Eingabe
public int ausgabe; // Variable fuer die Ausgabe
public String text =""; // Optionaler Text, Anzeige wenn nicht leer
public void verarbeitung(){ // Verarbeitung wenn Button gedrueckt
ausgabe = 2 * eingabe; // 2 * eingabe wird ausgabe zugewiesen
} // Ende der Verarbeitung
}
|
||
| Das Arbeiterklassen-Objekt ist erst mal eine abgeschlossene Kiste, in der drei "Durchreichen" (public Variablen) eingebaut wurden (public heist nach aussen sichtbar). Ausserdem sitzt in der Kiste ein Arbeiter (Methode,Funktion) namens "verarbeitung". Der Arbeiter hält eine Folge von Anweisungen (Unter-Programm P) in Händen, die er ausführt, wenn er dazu aufgefordert wird. |
|||
Im Applet1 wird eine Funktion aufgerufen (ein Arbeiter losgeschickt) die die Eingabe aus dem Eingabefeld in die Durchreiche "eingabe" legt und dann
dem Arbeiter "verarbeitung" in dem Arbeiterklassen-Objekt einen Tritt verpasst (die Methode verarbeitung aufruft).
Der Ver-Arbeiter holt nun gemäss seinem Programm den Zahlen-Wert aus der "eingabe", verdoppelt ihn und legt das Ergebnis in die "ausgabe" (Zuweisung).
Wenn er mit seinem Job fertig ist, übergibt er wieder an den Arbeiter, der ihn losgeschickt hat.
Dieser holt nun den Wert aus der "ausgabe" und macht ihn auf dem Bildschirm sichtbar, sein Job ist nun auch erfüllt.
Eine Anweisung (wird auch Befehl genannt) ist ein einzelner Arbeitsschritt (Beispiele unten) oder eine gesteuerte Folge von Arbeitsschritten (kommt noch)
| Im Struktogramm | In Java | Beschreibung |
|---|---|---|
| ausgabe <- 2 * eingabe |
ausgabe = 2 * eingabe; |
Der Wert des Ausdrucks "2 * eingabe" wird ausgabe zugewiesen |
| ausgabe <- eingabe * 4 + 3 |
ausgabe = eingabe * 4 + 3; |
Der Wert des Ausdrucks "eingabe * 4 + 3" wird ausgabe zugewiesen |
Wert zuweisen (<-) bedeutet, der Wert wird abgespeichert, in die Variable geschrieben, in Java und C verwendet man für die Zuweisung das "=".
Wichtig: Einzelne Anweisungen müssen in Java und C immer mit einem ";" Semikolon abgeschlossen werden!
Ein Ausdruck ist eine Berechnungsvorschrift für einen Wert: 2 * eingabe; 3 + 4
Einen Ausdruck auswerten heist seinen Wert ermitteln.
Will man die Anweisungen usw. zur besseren Verständlichkeit kommentieren stehen in Java und C zwei Möglichkeiten zur Verfügung:
Bsp.
ausgabe = 2 * eingabe; // 2 * eingabe wird ausgabe zugewiesen /* viele Zeilen Bla Bla Blub */
Kommentieren kann auch dazu verwendet werden, einzelne Befehle oder ganze Befehlsfolgen zeitweise für den Compiler unsichtbar zu machen,
man nennt dies Auskommentieren. Sinnvoll wenn man z.B. Fehler im Programm sucht.
Java ist eine komplett objektorientiert (OO) aufgebaute Programmiersprache, daher werdet ihr zwangsläufig immer wieder mit Begriffen aus
dieser Welt konfrontiert, auch wenn objektorientiertes Programmieren (OOP) nicht Stoff von Klasse 11 ist. Daher sind Erläuterungen zu diesen
Begriffen erst mal eine ergänzende Info zum Verständnis für euch.
Info: Klasse bedeutet Bauplan und Objekt das nach dem Bauplan erzeugte Ding. Bsp. Die Arbeiterklasse ist der Bauplan für den "Sandkasten".
Da steht z.B. drin, daß es einen Ver-Arbeiter gibt und was der machen soll. Schön, nur um wirklich was mit der Arbeiterklasse anfangen zu können,
muss der Sandkasten auch gebaut werden, das nennt man eine Instanz bilden und die ist dann ein Arbeiterklassen-Objekt.
Im Applet1 wird ein Arbeiterklassen-Objekt erzeugt: Arbeiterklasse ab =new Arbeiterklasse();
Dieses Objekt kann dann mit ab angesprochen werden d.h. der Ver-Abeiter mit ab.verarbeitung() die Eingabe-Durchreiche mit ab.eingabe usw.