Java Schnellstart – Was du noch nicht kennst
Du hast bisher viele Elemente und Themen aus der Java-Welt kennengelernt. Jedoch gibt es noch viele weitere Gebiete, die du dir im Laufe der Zeit anschauen kannst. In dieser Lektion gebe ich dir einen Einblick, was du noch nicht kennst:
1. Objektorientierung
In den vorherigen Modulen und Lektionen haben wir bereits an der ein- oder anderen Stellen die Objektorientierung verwendet. Überall dort, wo wir das Schlüsselwort "new" verwendet haben, hast du bereits objektorientiert gearbeitet.
Die Objektorientierung ist ein Weg, Computerprogramme (nicht nur Java, sondern viele weitere Programmiersprachen unterstützen dieses Konzept) mit "Objekten", zu verwenden. Diese Objekte enthalten Daten - meist in Form von Variablen und Methoden.
Programme, welche nicht objektorientiert arbeiten, sind meist prozedurale Programmiersprachen. Das bedeutet, dass sie Anweisungen von oben nach unten abarbeiten, ohne Objekte zu benötigen.
Bei der objektorientierten Programmierung verwenden Computerprogramme jedoch Objekte, die miteinander kommunizieren, um Daten in diesen Objekten zu ändern und in einer Weise zu arbeiten, die der Benutzer wünscht. Aufgrund der Art und Weise, wie die objektorientierte Programmierung konzipiert ist, hilft sie dem Entwickler, indem sie die einfache Wiederverwendung von Code durch andere Teile des Programms oder sogar durch andere Personen ermöglicht.
Da die Objektorientierung ein vergleichsweise großes Gebiet ist, lässt sie sich weitere Unterthemen aufteilen:
- Klassen erstellen
- Konstruktor
- Objekte erzeugen
- Vererbung
- Zugriffsmodifizierer
- Interfaces
- Polymorphismus
- Überladung
- Überschreibung
- Kapselung mit Getter und Setter
- Abstrakte Klassen
- Interfaces
2. File Handling
Die Dateiverwaltung (File Handling) ist ein wichtiges Themengebiet in der Programmierung. Je nachdem, welche Dateien bzw. Dateitypen man einlesen, bearbeiten, löschen oder verändern möchte, gibt es unterschiedliche Wege, dies zu erreichen. Folgende Konzepte bieten einen guten Anhaltspunkt:
- Dateistreams
- Text verändern
- JSON
- XML
- AudioStream
- Audio-Datei abspielen
In den nächsten Lektionen lernst du mehr zum File Handling, insbesondere das Verändern von Textdateien mit der Hilfe von Dateistreams.
3. Enumerationen
Enumerationen kannst du dir wie im Fußball vorstellen. Jeder Spieler hat eine bestimmte Nummer zugewiesen. Damit du nicht merken musst, welcher Spieler welche Nummer hat, steht zusätzlich der Name auf dem Trikot. Ein ähnliches Konzept sind Enumerationen in Java. Du kannst damit einfache Zuweisungen definieren.
4. GUI-Entwicklung
Eine "GUI" ist ein "Graphical User Interface", also eine grafische Benutzeroberfläche. Hier gibt es in Java etliche Frameworks. Je nachdem, für welches Betriebssystem du programmierst, unterscheidet sich die GUI-Entwicklung stark.
Für den Anfang empfiehlt es sich "Java Swing" zu lernen. Damit kann man Benutzeroberflächen für Desktopanwendungen programmieren. Danach kannst du dich an "Java FX" wagen. Java FX ist ein modernes Framework für die Entwicklung von GUIs für Desktopanwendungen. Jedoch ist dieses Framework nicht anfängerfreundlich.
Möchtest du Android-Apps programmieren, dann kannst du Android Studio verwenden. Hier schreibst du im Gegensatz zu "Java Swing" deine Benutzeroberfläche nicht mit puren Java-Code, sondern mit XML. Das ist ähnlich wie HTML bei Webseiten.
5. Serialisierung
Möchtest du zum Beispiel bei einem Spiel deinen Spielstatus speichern und genau da weitermachen, wo du letztes Mal aufgehört hast, dann kann die Serialisierung ein spannendes Thema für dich sein. Dabei wandelt man "Objekte" (du solltest also erst Objektorientierung gut verstanden haben) in Formate wie JSON, XML oder gar komplett in Binärcode um und kann diese abspeichern und beim erneuten Öffnen der Anwendung wieder laden.
6. Listen
Du hast bereits gelernt, dass Arrays nur eine begrenzte Anzahl an Elementen speichern können. Hingegen können Listen in der Regel unendlich viele Elemente speichern. Es gibt verschiedene Listen, welche sich in ihrem Funktionsprinzip sehr unterscheiden:
- LinkedList
- Stack
- ArrayList
- Queue
- HashMap, HashTable, HashSet
7. Threading
Stell dir vor, du entwickelst ein neues Spiel. Beim Laden eines Levels werden einige Vorgänge abgearbeitet, z.B. werden Spielstände geladen, die Netzwerkverbindung zu anderen Spielern wird hergestellt, das Anti-Cheat-System wird initialisiert. Wie schön wäre es, wenn wir das nicht nacheinander, sondern gleichzeitig ablaufen lassen könnten? Genau das kannst du mit Threads machen.
Fazit
Natürlich könnte man die Liste an Themen, welche du noch lernen kannst, ewig weiterführen. In fast jeder Programmiersprache kannst du dir sicher sein, dass du nie auslernst, weil sich die Sprachen schneller entwickeln als man lernen kann. Du bekommst in einer späteren Lektion eine Handlungsempfehlung, wo du nach diesem Schnellstart-Kurs weitermachen kannst. Mit dieser hier gezeigten Liste hast du bereits einen guten Anhaltspunkt für deinen weiteren "Lernplan" bzw. eine mögliche Spezialisierung (Spieleentwicklung, Datenbanken, usw.)