Programmieren mit Java

Lehreinheit des Moduls Medieninformatik ist eine Einführung in die objektorientierte Programmiersprache Java.

  • Es wird weniger Gewicht auf eine umfassende Behandlung des Themas gelegt sondern vielmehr nach dem Prinzip „learning by doing“ auf einen schnellen Einstieg in die Materie. Syntax, Struktur und Algorithmen von Computerprogrammen werden am Beispiel schneller erfasst, als es theoretische Betrachtungen tun können.
  • Die Materialien sind wie ein Kochbuch zu verstehen - Fähigkeiten werden erst durch das Nachkochen der einzelnen Rezepte geschaffen. Die Entwicklungsumgebung Eclipse wird im gewählten, bildhaften Vergleich als Herd für die Zubereitung der Speisen (Programme) empfohlen. Alle Rezepte (Quelltexte) dieses Online-Seminars sind für die konkrete, praktische Arbeit am Rechner abrufbar.
  • Erst in einer späteren Phase, die der Herausbildung einer Grundbefähigung folgt, ist die Arbeit mit umfassenden, verallgemeinernden Darstellungen im Sinne einer deduktiven auf Selbstständigkeit orientierten Lernmethode sinnvoll.

Objektorientierte Programmierung

Komplexe, computergestützte Modelle als vereinfachte, abstrakte Abbilder der Realität lassen sich i. Allg. nur dann effizient erstellen, wenn sie in überschaubare Teilaufgaben zerlegt werden.

  • In der objektorientierten Programmierung (OOP) stehen Objekte für separate (gekapselte) Module, aus denen das Programm zusammengefügt wird. Die Module interagieren, um vorgesehene Aufgaben zu erledigen. Objekte vereinigen Daten und Algorithmen zur Verarbeitung und Veränderung dieser Daten.
  • Der Programmierer verfügt über abstrakte Entwürfe (Klassen), die er mittels Parametern konkreten Anforderungen anpassen kann. So braucht er grundsätzliche Programmkomponenten nicht neu entwickeln, sondern kann über Kataloge Objekte - wie  z.B. Schaltflächen, Textfelder, Tabellen, Farbpaletten, Verzeichnisbäume, Druckdialoge ... - auswählen. Außerdem kann er auf Aktionen (Methoden) - wie z.B. mathematische Funktionen, Textverarbeitung, Mustererkennung, Audio-, Videostreaming, Netzroutinen, ... - zurückgreifen.
  • Java beinhaltet eine große Anzahl von Klassen (Java-Klassenbibliothek), welche eine objektorientierte Programmierung garantieren. Deren Vielfalt (mehrere tausend Klassen) ist Segen und Fluch zugleich: Softwareentwickler müssen nicht ständig das Rad neu erfinden aber Neueinsteigern und selbst Fortgeschrittenen fällt es i. Allg. sehr schwer, die umfangreichen Pakete abstrakter Vorlagen zu überschauen; es ist unmöglich, dazu einen systematischen Überblick zu vermitteln.

Plattformunabhängigkeit

Java ist so ausgelegt, dass übersetzte Programme auf verschiedenen Plattformen (Windows, MacOS, Linux) laufen. Der entsprechende Byte Code (Dateien mit der Namenserweiterung class) ist für alle Rechnersysteme gleich; erst die Java Virtual Machine (JVM) des konkreten PCs variiert und steuert die Ausführung eines Programms im Rahmen der zugehörigen Rechnerarchitektur.

Parallelverarbeitung

Java unterstützt Multithreading - den parallelen Ablauf eigenständiger Programmabschnitte. Die Java-Laufzeitumgebung teilt die verfügbare Zeit zwischen unterschiedlichen Vorgängen so auf, dass der Eindruck einer simultanen Ausführung entsteht.

Es gibt mehrere Entwicklungsversionen der Programmiersprache Java, die hervorragend für die Generierung plattformunabhängiger Desktop-Anwendungen geeignet ist.
Java wurde bisher kontinuierlich weiterentwickelt und durch Ergänzungen an neue Entwicklungen bzw. Anforderungen angepasst.

  • Die Plattform Java ME (Micro Edition) erlaubt es, Anwendungen auf mobilen Geräten auszuführen:
     
    Auf Java ME basierende Anwendungen sind auf verschiedene Einheiten - Mobiltelefone (Android), Personal Digital Assistants, TV Set-Top-Boxen und Drucker - portierbar und nutzen dennoch die systemeigenen Funktionen jedes Geräts.
     
  • JavaFX - eine aktuelle Erweiterung von Java - für plattformübergreifende Rich Internet Applications (RIAs) ermöglicht vielfältige Interaktionen, Drag&Drop, Bedienung über Tastenkombinationen, Styles, 3D-Effekte, Animationen sowie die Unterstützung verschiedener Videoformate und diverser Medien.
     
    Die JavaFX-Laufzeitumgebung wird mit der aktuellen Version von Java SE (Standard Edition) installiert.

Java wird nicht proprietär von aktuellen Versionen des Microsoft Betriebssystems Windows unterstützt; die Java-Umgebung (s.u.) ist extra zu installieren.

Applet, Application

Bei Java-Programmen unterscheidet man zwischen Applikationen und Applets.

  • Erstere stellen eigenständige Computer-Programme dar,
  • letztere sind Element einer Web-Seite und werden unter der Kontrolle eines Web-Browsers bzw. eines Applet-Viewers (Komponente von Java Entwicklungsumgebungen) ausgeführt.

API

Eine umfassende Beschreibung aller Klassen von Java finden Sie unter:

Diese Datenbank zur Java Platform Standard Ed. 8 ist hervorragend geeignet, um Detailfragen zu einzelnen Klassen zu zu klären. Das Kompendium listet alle Pakete und Klassen auf, gibt Auskünfte zu Verwendung der Klassen und liefert Informationen über Konstruktoren und zum Verhalten von Methoden jeder Klasse sowie zu Parametern, Rückgabetypen und statischen Konstanten.

Bei der objektorientierten Programmierung mit Java ist dieser Katalog der Klassenbibliotheken unverzichtbar.

Editoren

Um Programme zu erstellen und zu testen benötigen Sie eine Entwicklungsplattform für Java, z. B.:
 

 

Alle Pakete werden kostenlos zum Download im Internet angeboten; letzteres ist ein Werkzeug zum Entwurf von JavaFX-Programmen (s.o.) für die Entwicklungsumgebung Eclipse.

Zur Software gehören Java-Compiler, i. Allg. das Java Runtime Environment (JRE) für die Ausführung von Applikationen, Appletviewer zur Anzeige von Applets, Java-Debugger und verschiedene Hilfsprogramme oder Plug-ins.

Eclipse setzt eine aktuelle Java-Umgebung (JRE) auf dem System voraus.

XDEV 5 bietet - ebenso wie Eclipse - Rapid Java Development an. Mit dem SwingBuilder lassen sich analog zum WindowBuilder des Marktführers Eclipse Komponenten per Drag&Drop auf die Arbeitsfläche einfügen und im ersten Fall sogar mit frei wählbaren Abmessungen pixelgenau positionieren. Diese Arbeitsweise des freien Gestaltens von grafischen Benutzeroberflächen setzt aber eigene Klassenbibliotheken voraus, die sich von der Standardumgebung (JRE) unterscheiden.

Ohne Grundkenntnisse und praktische Erfahrungen in der Programmierung mit Java sind mit diesen grafisch orientierten Editoren keine zufriedenstellenden Ergebnisse erreichbar.