MezData-Logo Creative Commons License 345 Lösungen Button :JAVA: Das EVA-Prinzip

Betrachte folgendes Applet, gib eine Zahl bei Eingabe ein und klicke auf Bearbeiten!

Wie wird die Eingabe verarbeitet, was ist die Ausgabe?

Struktogramm
darstellung

Eingabe eingabe
ausgabe <- 2 * eingabe
Ausgabe ausgabe

EVA -Prinzip

Eingabe Eingabe eingabe
Verarbeitung ausgabe <- 2 * eingabe
Ausgabe Ausgabe 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".

Aufgabe (Verarbeitung ändern)

Ändere die Verarbeitung so, dass nun eingabe * 4 +3 ausgeben wird und teste das Programm!

Die Arbeiterklasse

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.

Was passiert, wenn der Button "Verarbeitung" gedrückt 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.

Anweisung (Instruction)

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!

Ausdruck (Expression)

Ein Ausdruck ist eine Berechnungsvorschrift für einen Wert: 2 * eingabe; 3 + 4
Einen Ausdruck auswerten heist seinen Wert ermitteln.

Kommentare im Quelltext

Will man die Anweisungen usw. zur besseren Verständlichkeit kommentieren stehen in Java und C zwei Möglichkeiten zur Verfügung:

  1. Kommentieren bis zum Ende der Zeile mit //
    Alles was nach den // bis zum Ende der Zeile kommt wird vom Compiler überlesen, ignoriert.
  2. Kommentare über mehrere Zeilen mit /* und */
    Alles was zwischen /* und */ steht wird vom Compiler überlesen, ignoriert.

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.

Unterschied zwischen Klasse und Objekt

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.