1.3 Grundlegende Konzepte

1.3 Grundlegende Konzepte

 Im Javaumfeld muss man zwei grundlegende Konzepte unterscheiden:

  • Die Programmiersprache Java: Mit ihr werden die zu programmierenden Algorithmen beschrieben
  • Das Laufzeitsystem Java zu dem man auch die Entwicklungswerkzeuge (JDK) zählt.
    • Mit Hilfe der Entwicklungswerkzeuge werden die (menschlich) lesbaren Java-Quellcodeprogramme in ein maschinenlesbares Format übersetzt und auf diverse Fehler geprüft
    • Das Laufzeitsystem kann dann diese übersetzten Programme ausführen.
Stefan Schneider Thu, 08/09/2012 - 14:37

1.3.1 Grundkonzepte von Programmiersprachen

1.3.1 Grundkonzepte von Programmiersprachen

 Programmiersprachen sind eine Ebene über den Maschinensprachen angesiedelt. Sie sind ein Mittel der Abstraktion und Strukturierung.

Die wichtigsten Komponenten einer Programmiersprache (Neuendorf S.40) sind:

  • Datentypen: (primitive und strukturierte)
    • Modellierung verschiedener Wertebereiche (Größen); Sicherheit durch Typprüfung
  • Variablen und Konstanten
    • Verwendung von Namen anstelle von Speicheradressen für Behälter die Daten verwalten
  • Ausdrücke
    • Verknüpfung von Variablen und Konstanten zu Termen die Werte berechnen
  • Zuweisungen
    • Speicherung von Ausdruckswerten in Variablen
  • Ablaufsteuerungsanweisungen: Verzweigungen und Schleifen
    • Manipulation des Programmverlaufs. Sie erlauben die Steuerung des Kontrollflusses
  • Unterprogramme: Prozeduren, Funktionen, Methoden
    • Kapselung von Programmteilen zur Wiederverwendung und übersichtlichen Strukturierung

Die oben aufgeführten Komponenten sind in allen gängigen Programmiersprachen zu finden.

In Java werden diese Komponenten zu Klassen zusammengeführt:

  • Sie sind die Zusammenfassung von Daten und Methoden in eigenständigen gekapselten Einheiten

Der Zusammenhang zwischen diesen Komponenten wird im folgenden UML Diagramm vereinfacht gezeigt:

Komponenten von Programmiersprachen

Stefan Schneider Thu, 08/09/2012 - 14:57

Anonymous (not verified)

Sun, 10/13/2019 - 15:14

Hallo!
Ich denke Sie haben einen kleinen Tippfehler bei den Komponenten gemacht. Es steht dort Unterprogrogramme anstelle von Unterprogramme. Da ich mir nicht sicher war, ob die nun wirklich so heißen, wollte ich nur einmal nachfragen, ob das so stimmt.

MFG

Stefan Schneider

Mon, 10/14/2019 - 08:25

In reply to by Anonymous (not verified)

Wurde verbessert. Danke!

1.3.2 Klassen und Objekte

1.3.2 Klassen und Objekte

Bevor man ein System in einer Programmiersprache implementiert, verwendet man objektorientierte Techniken um mit dem Kunden den Problembereich (Anwendungsbereich) im Rahmen einer Systemanalyse zu modellieren.

Anschließend werden die modellierten Objekte und ihre Datentypen in eine Programmiersprache abgebildet.

Im Rahmen des Kurses werden Diagramme in UML (Unified Modeling Language) zur Beschreibung von Javaklassen verwendet. In Java sowohl als UML werden die folgenden Begriffe verwendet:

  • Klasse: Ein Typ eines Gegenstandes in der realen Welt. Mit Klassen werden nicht nur Typen der realen Welt beschrieben sondern auch abstrakte Konzepte wie zum Beispiel ein Vertrag
    • Attribute: Datenfelder einer Klasse. Sie haben einen Namen zur Unterscheidung und einen Typ
    • Methoden: Programme die auf alle Instanzen einer Klasse angewendet werden können.
      • Methoden können keinen, einen oder mehrere Eingabewerte haben
      • Methoden können keinen oder einen Rückgabewert haben
      • Methoden können die Datenfelder der Objekte verändern
  • Objekte:
    • Ausprägungen von Klassen
    • Entitäten mit gemeinsamen Eigenschaften
    • Instanzen von Klassen

Objekte haben einen Lebenszyklus. Sie können erzeugt, modifiziert und dereferenziert werden. Dereferenzierte Objekte in Java sind nicht mehr erreichbar und daher nutzlos. Sie sind defacto gelöscht.

Modellierung in UML

Im Folgenden ist eine Klasse Flugzeug in UML und zwei Objekte der Klasse a380 und jumbo modelliert.

UML Klassen, Objekte

Implementierung in Java

Die Modellierung der Klasse Flugzeug in Java ist nachfolgend dargestellt.

Die Erzeugung der beiden Objekte a380 und jumbo erfolgt in der Methode main(). Hierzu muss ein Javaprogramm ausgeführt werden.

Die Methode main() wird als Javaprogramm durch das Kommando java Flugzeug aufgerufen.

public class Flugzeug {
    String kennzeichen; // Ein Attribut vom Typ einer Zeichenkette
    int leerGewicht; // Ein Attribut vom Type einer Ganzzahl

    /**
     * Eine Methode zum Drucken der Attributbelegung des Objekts
     * Die Methode erfordert keine Eingaben. Sie erzeugt keine
     * Aufgaben
     */
    public void drucken() {
        System.out.println("Kennzeichen " + kennzeichen + " "
                + leerGewicht + "kg");
    }

    /**
     * Die Methode main() wird zum Starten des Programms benutzt
     * @param args Übergabe von Konsolenparameter. Hier nicht genutzt
     */
    public static void main(String[] args) {
        // Erzeugen zweier Objekte
        Flugzeug jumbo = new Flugzeug();
        Flugzeug a380 = new Flugzeug();
        // Belegen der Attribute des ersten Objekts mit Werten

        jumbo.kennzeichen = "D-ABYT";
        jumbo.leerGewicht = 191000;

        // Belegen der Attribute des zweiten Objekts mit Werten
        a380.kennzeichen = "D-AIMD";
        a380.leerGewicht = 286000;

        // Drucken der beiden Objekte auf der Konsole
        jumbo.drucken();
        a380.drucken();
    }
}

Das obige, ausführbare Programm hat die folgende Grundstruktur die in allen Javaklassen zufinden ist.

Einfache Klasse mit Erklärung der wichtigsten Syntax 

Javaklassen können noch mehr Bestandteile haben. Für die Einführung sind die folgenden Bestandteile die wichtigsten:

  • Eine Javaklasse sollte in einer Datei mit dem gleichen Namen und der Extension .java gespeichert werden
  • Das Schlüsselwort class steht unmittelbar vor dem gewählten Namen der Klasse
    • Vor dem Schlüsselwort class können noch weitere Schlüsselworte stehen, die z.Bsp. die Sichbarkeit der Klasse bestimmen
    • Nach dem Klassennamen können noch Oberklassen oder Implementierungen angegeben werden
  • Die Implementierung der Klasse steht zwischen dem folgenden geschweiften Klammerpaar
    • Attribute einer Klasse haben einen Typ und einen Namen. Sie werden immer mit einem Semikolon beendet.
    • Methoden einer Klasse besitzen
      • optionale Schlüsselworte um die Methodeneigenschaften zu spezifizieren
      • Rückgabetypen: Der Typ des Ergebnis der Berechnung
      • einen Namen
      • eine Parameterliste die mit runden Klammern beschrieben wird. Sie kann leer sein.
      • Einen Rumpf mit der Implementierung der Methode. Der Rumpf wird mit geschweiften Klammern implementiert. Die Implementierung des Rumpfs steht zwischen den geschweiften Klammern
Stefan Schneider Sat, 07/16/2011 - 10:45