Der wachsende Wegweiser zum Java-Modul
Ein Wegweiser zur Java-Programmierung, der mit seinen Aufgaben wächst. Für die Teilnehmer*innen des Moduls "Softwaretechnologie: Java" der Studiengänge Informationsverarbeitung und Medieninformatik am IDH (Institut für Digital Humanities, Universität zu Köln) und alle Interessierten!
Work in progress.
🚧 🐌
Dieses Repository ist weit davon entfernt, vollständig zu sein. Aber das ist okay. Wenn dir auffällt, dass etwas Wichtiges fehlt oder unzureichend erläutert ist, dann eröffne ein Issue oder trage eigene Änderungen bei!
Übrigens 💬
Inhalt 📖
👉 Die einzelnen Themenbereiche sind hier mitSchlagwortenkurz zusammengefasst. Die jeweilige Überschrift verlinkt auf das Dokument mit allen Inhalten zum entsprechenden Thema.
Einstieg
Benötigte Software
JDK,Eclipse IDE,Download,Installation, ...
Die Programmiersprache Java
Warum Java?,Warum nicht?,Besonderheiten,Java Platform,Java Ecosystem,Packages,Hello World!, ...
Eclipse IDE
IDE,Warum Eclipse?,Workspaces,Views,Editor,Die wichtigsten Funktionen,Import,Export,Console,Ausführen von Programmen,Automatisch generierter Code...
Grundlagen
Hello World
Das erste Programm,Was ist das alles?
Packages, package und import
Packages,Pakete,Paket-Pfade,package,import
main-Methode
main
Kommentare
// inline,/* multi-line */
Variablen
Was ist das?,Syntax,naming conventions,Typisierung, ...
Datentypen
primitive Datentypen,komplexe Datentypen,byte,short,int,long,float,double,boolean,char,default-Werte,Wrapper-Klassen...
Casting
Typumwandlung,implizit,explizit,upcast,downcast,cast-Operator,Casting bei komplexen Datentypen, ...
Methoden
Rückgabewerte,Parameter/Argumente,return,Überlagerung,Java ist immer pass-by-value...
Operatoren
Rechenoperatoren,Vergleichsoperatoren,logische Operatoren,Zuweisungsoperatoren,+,-,*,/,%,++,--,==,!=,>,<,>=,<=,&&,||,=,+=,-=,/=,*=,%=,&=,|=, ...
Strings / Zeichenketten
die Klasse "String",Literals,special characters,Unveränderbarkeit von Strings,UTF-16, ...
Conditional statements / Konditionale
if,else,:? (Ternary-Operator),switch
Schleifen
while,do-while,for,for-each
Arrays
Datenstrukturen,Deklaration,Typisierung,Initialisierung,Array Literals,Zugriff,Mehrdimensionale Arrays, ...
Fehlerbehandlung
Error,Exception,try,catch,finally,try-with-resources,throws, ...
Objektorientierte Programmierung (OOP)
OOP, Klassen und Objekte
Definition,Nutzen,Beispiele,Klasse,Objekt,Kuchen, ...
Objekte I: Initialisierung, Members, Zugriff
new-Operator,Instanzvariablen,Instanzmethoden,Zugriffs-/Sichtbarkeitsmodifizierer,private,(default),protected,public,this,Getter,Setter,Konstruktoren, ...
Static Members
static,Klassenvariablen,statische Methoden, ...
final
final,finale Variablen,finale Klassen,finale Methoden,Konstanten in Java, ...
Vererbung I: Grundlagen
Wozu?,Terminologie,extends,super,instanceof-Operator,Überschreiben von Methoden, ...
Objekte II: Repräsentation, Identität, Gleichheit
toString(),Objekt-Identität,Objekt-Gleichheit,equals(),hashCode(),Der Vertrag zwischen equals() und hashCode(), ...
Vererbung II: Abstrakte Klassen und Methoden
abstrakte Klassen,abstrakte Methoden,abstract, ...
Vererbung III: Interfaces
Interfaces,Erweiterung von Interfaces,Default-Methoden,Statische Methoden in Interfaces...
Innere und anonyme Klassen
Anonyme Klassen,Innere Klassen, ...
Abstrakte Konzepte und Fortgeschrittenes
Enums
Enums, ...
Rekursion
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
Input / Output (I/O)
Streams,Buffering,Reader,Writer,Objektserialisierung, ...
DIY-Datenstrukturen
verkettete Listen,zweifach verkettete Listen,Binärbäume,binäre Suchbäume,Iterable,Iterator,siehe auch "Collections Framework"!...
Generics
Was?,Wozu?,<Syntax>,Typsicherheit trotz generischer Programmierung,Gültigkeit bei Kompilierung und zur Laufzeit, ...
Collections Framework
Aufbau,List,Set,Map,Objekt-Identität im Kontext von HashMaps/HashSets, ...
Vergleichen und Sortieren
Comparable,Comparator,Collections.sort(),Sortieralgorithmen...
Multithreading
Prozess,Thread,Runnable,synchronized,volatile, ...
Externe Programmbibliotheken
Wozu?,Wie werden sie eingebunden?,Maven,Gradle...
Unit-Tests
Wozu?,Schreiben von Unit-Tests,Test-driven-development,JUnit, ...
Allgemeines / Sonstiges
Naming Conventions
Konventionen für Bezeichner in Java,Groß-/Kleinschreibung, ...
Dokumentation mit JavaDoc
Wozu?,/**,@param,@return,<code></code>,best practices, ...
Contributors ✨
Das ist alles. Bis jetzt! Wie wäre es mit deinem Beitrag?
Dank für die Mitarbeit an diesem Repository gebührt den folgenden fleißigen Mitwirkenden (emoji legende):
bkis |
Nicolas David Werner |
Lelalue |
All Contributors |
mkamphausen |
Julian Kamphausen |
Demirro |
👉 Dieses Projekt folgt der all-contributors-Spezifikation.
Contributions (Beiträge) jeder Art sind willkommen und werden an dieser Stelle wie oben zu sehen aufgeführt!