- JAVA-B1 | Overview
- JAVA-B1 | Objektorientierung
- JAVA-B1 | Klassen
- JAVA-B1 | Objekte
- JAVA-B1 | Klassen im Detail
- JAVA-B1 | Interfaces
- JAVA-B1 | Interfaces (simple)
- JAVA-B1 | Inheritance Advanced
- JAVA-B1 | Finalisierung von Klassen und Methoden
- JAVA-B1 | Abstrakte Klassen und Methoden
- JAVA-B1 | Versiegeln von Klassen und Methoden
- JAVA-B1 | FAQ Vererbung
- JAVA-B1 | Generics
- JAVA-B1 | Modularisierung
- JAVA-B1 | Modularisierung: Packages
- JAVA-B1 | Modularisierung: Modules
- JAVA-B1 | New Features ab Java 8
- JAVA-B1 | Records
- JAVA-B1 | Template-Strings
Klassen im Detail Overview return-Statements return & void return bei primitiven Typen return bei Objekten return-Statements von Methoden mit/ohne return Rückkehr ohne return Rückkehr über return throws Exception Kopie oder Referenz Covariant Return Types this this mit Objekt-Feldern this mit Methoden und im Konstuktor Zugriffsmodifikatoren public protected private Class Member static public static final PI Initialisierung Initialisierung von Feldern Initialisierung von Klassenfeldern Static Block Lambda-Expressions Methoden-Referenzen
Enumerationen und enum-Types Enumerationskonstanten Enumerationen mit Werten Samstag/Sonnabend Example @! Enumerationen FAQ Enum @!Descr/Exmpl/Index
Interfaces Einfache Interfaces (Marker) Interfaces mit Methoden Default-Methoden static Interfaces FAQ Vererbung / Inheritance Vererbung / Inheritance super Keyword method-overriding-and-hiding hiding-of-fields object-as-superclass Finalisierung Finale Klassen und Methoden Finale Methoden Finale Utility-Klasse "IdGenerator" "Template-Methode"-Pattern DataProcessor process(){ r(), p(), w() } Composition-over-Inheritance abstract Abstrakte Klassen und Methoden Beispiel Abstrakte Klassen und Methoden abstract Implementierungsklassen FAQ Vererbung Kein this in super(..) Verhindern Überschreiben von Membern
Generics Generische Programmierung Generische Typparameter Generische Klassen Generische Interfaces Generische Methoden Generische Felder Generische Collection (ArrayList) Diamond Operator Generische Arrays Example Beispiel "GenerischerSpeicher" Ring-Speicher-Algorithus mit generischem Array Beispiel: GenerischePerson mit Berufsgruppe Beispiel: Berufsgruppe mit Static/Non-Static Nested Classes
Modularisierung Package Overview Package Structure Package Info
Modules Overview Setup Setup Module Info
Java New Features Java 8+ Java Record Record Syntax Record Demo Herkömmliche POJOs Lösung mit Records Records Zusammenfassung
INDEX
Overview
JAVA-B1 | Overview
Objektorientierung
JAVA-B1 | Objektorientierung
Mit diesem Themenblock beginnen wir eine Einführung in die sogenannte in die Objektorientierte Programmierung mit einem Einblick in Klassen, Objekte, Methode, Attribute, Members, Interfaces, Default-Methoden von Interface, Prinzipien der Vererbung, Schlüsselworten wie this, super, abstract´ sowie einen Überblick über die Verwendung von Strings, Numbers und Packages und Modulen.
Unter der Annahme, dass wir die absoluten Basics der Programmiersprache JAVA soweit verstanden haben, dass wir einfache Programme schreiben, kompilieren und ausführen können, befassen wir uns in diesem Themenblock mit der Frage, wie man eigentlich eigene Klassen programmiert. Wir werden in diesem Bereich Klassen und zugehörige Member wie Methoden, Konstruktoren und Attribute programmieren und zeigen, wie man eigene Objekte erzeugt und verwendet. Darüberhinaus werde3n wir damit befassen, wie man Klassen in anderen Klassen als Nested Class programmieren kann oder auch Enumeration verwendet.
Klassen
JAVA-B1 | Klassen
In diesem Bereich erklären wir den grundlegenden Aufbau von Klassen und wie man in einer Klasse die zugehörigen Member wie Felder, Methoden und Konstruktoren deklariert.
Die klassenbasierte Objektorientierung in Java ist beispielhaft für viele andere Programmiersprachen. Wenn Sie die objektorientierte Programmierung in JAVA verstanden haben, verstehen Sie diese auch in den meisten anderen Sprachen.
Klassen im Detail
JAVA-B1 | Klassen im Detail
Lambda-Expressions sind seit JAVA 15 in der Entwicklung nicht mehr wegzudenken, ermögliche Sie doch eine leichtere Lösung von Problemstellungen die mit einer herkömmlichen, auf Klassen basierten Objektorientierung so nicht möglich war.
In diesem Themenblock befasen wir uns mit einer Liste von Ansätzen, wie und wann man letztendlich zu Lambda-Ausdrücken kommt und diese erfolgreich einsetzen kann.
Interfaces
JAVA-B1 | Interfaces
Interfaces, Markerinterfaces, Interfaces mit statischen Methoden, Interfaces im Vergleich zu PHP Traits, Interfaces im Vergleich zur Mehrfachvererbung in C++, Interface im Collection Framework, Interfaces für Typkonvierungen, Interfaces für Gruppierung von Objekten verschiedener Klassen. Interfaces sind nicht wegzudenken.
Obwohl Interfaces überall in JAVA zu finden sind, ist es immer wieder überraschend, warum viele Entwickler dennoch ohne Interfaces arbeiten und immer wieder Klassen bemühen.
Unsere Inhalte sind noch nicht digitalisiert worden.
Interfaces
JAVA-B1 | Interfaces (simple)
Vererbung (fortgeschritten)
JAVA-B1 | Inheritance Advanced
In diesem Themenbereich gehen wir vertiefend auf weitere Details in Bezug auf die Syntax und Möglichkeiten in JAVA in Bezug auf die Vererbung, engl. Inheritance, ein.
Wir befassen uns mit dem Problemstellung der
Mehrfachverbung, der Verwendung von super,
dem Überschreiben und Verstecken von Methoden, dem Verstecken
von Feldern, der Verwendung von Objekten als Superklassen,
der Finalisierung von Klassen und Methoden, dem Versiegeln
von Klassen, Interface und Methoden sowie der Verwendung von
abstrakten Klassen und Methoden.
JAVA-B1 | Mehrfachvererbung in JAVA
Eine Mehrfachvererbung, englisch Multiple-Inheritance genannt, ist bei JAVA
wie auch den meisten anderen objektorientierten Programmiersprachen in
Verbindung mit den mit class deklarierten
Klassen nicht ohne weiteres möglich, wenn auch es Lösungsansätze gibt.
Mehrfachvererbung bedeutet, dass eine Klasse von
zwei und Klassen erben möchte, wie man das beispielsweise bei Kindern
im Erben von Eigenschaften von Vater und Mutter vermuten dürfte.
In der objektorientierten Programmierung darf allerdings nach
nach extends in JAVA
für die Erweiterung nur eine Klasse angegeben werden.
Wie man es dennoch sinngemäß lösen kann, zeigen wir in diesem
Themenblock.
JAVA-B1 | Finalisierung von Klassen und Methoden
In diesem Themenblock befassen wir uns mit dem Schreiben finaler Klassen und Methoden sowie Verfahren, wie man ab JAVA 17 Klassen und Methoden versiegeln kann, diesen Schutz aber für ausgewählte Klassen aber wiederum erlauben kann.
Das Finalisieren und Schützen von Klassen und Methoden ist insbesondere für Utility-Klassen sowie für Methoden zweckmäßig, welche direkt aus Konstruktoren aufgerufen werden.
JAVA-B1 | Abstrakte Klassen und Methoden
In diesem Themenblock befassen wir uns mit dem Schreiben finaler Klassen und Methoden sowie Verfahren, wie man ab JAVA 17 Klassen und Methoden versiegeln kann, diesen Schutz aber für ausgewählte Klassen aber wiederum erlauben kann.
Das Finalisieren und Schützen von Klassen und Methoden ist insbesondere für Utility-Klassen sowie für Methoden zweckmäßig, welche direkt aus Konstruktoren aufgerufen werden.
JAVA-B1 | Versiegeln von Klassen und Methoden
In diesem Themenblock befassen wir uns mit dem Schreiben finaler Klassen und Methoden sowie Verfahren, wie man ab JAVA 17 Klassen und Methoden versiegeln kann, diesen Schutz aber für ausgewählte Klassen aber wiederum erlauben kann.
Das Finalisieren und Schützen von Klassen und Methoden ist insbesondere für Utility-Klassen sowie für Methoden zweckmäßig, welche direkt aus Konstruktoren aufgerufen werden.
Generics
JAVA-B1 | Generics
Die Generische Programmierung ist ein Verfahren bei welchem man mit Hilfe von Typ-Parametern sowohl Klassen als auch Methoden, Felder und damit auch Interfaces und vieles andere mehr generalisieren kann. Die Typen von Variablen, Parametern oder auch return-Typen werden hierbei erst zum Zeitpunkt der Instanzierung definiert.
Generische Programmierung und ein Verständnis von generischen Typparametern bildet die Grundlage für ein Verständnis der Nutzung von Java Collections. Alle Collections der Java Collection API sind generische.
Modularisierung
JAVA-B1 | Modularisierung
In diesem Themenblock zur Modularisierung befassen wir uns zuerst einmal in diesem Level nur mit dem Prinzip von Packages, Modulen, dem Import von Paketen, der Benennung von Ordnern und dergleichen, damit das Grundprinzip verstanden wurde.
HINWEIS: Die Modularisierung von Java-Anwendungen erfolgt eigentlich seit Java 8 nicht mehr nur über Packages sondern auch über Module. Darüber hinaus führt Auslagerung von Java EE Packages zu Eclipse als Jakarta oder immer mehr Integration von Packages aus Open-Source-Quellen zu der Problematik, dass man eigentlich zwingend auf Maven oder Gradle setzen muss.
JAVA-B1 | Modularisierung: Packages
Modularisierung: Packages
Der Programmcode von Java-Source-Files wird in Packages, Ordnern, Modulen und JARs gegliedert. Maßgebend für den Einstieg ist ein Verständnis der Package- und Folder-Struktur von Java-Anwendungen.
In diesem Themenblock befassen wir uns mit der Frage, wie man Packages strukturiert, gliedert, benennt, importiert und anderes mehr.
New Features
JAVA-B1 | New Features ab Java 8
Über die Jahre sind seit Java 8 einige neue Features hinzugekommen.
Die nachfolgenden Blöcke geben einen kleinen Einblick, sind decken aber nur einen Auszug ab.
Records, siehe unten.
Records
JAVA-B1 | Records
Objekte kann man in JAVA nicht nur über Klassen erzeugen sondern auch über Records, es gibt also neben «class A» auch «record A» als Alternative. Records sind für bestimmte Problemstellungen sehr praktisch.
In diesem Themenblock erläutern wir, was Records im Vergleich zu POJOs sind, wozu diese dienen, welche Vorteile Sie haben und wann man diese einsetzen sollte.
Template-Strings
JAVA-B1 | Template-Strings
Die Syntax von Template-Strings ist schnell erklärt. Was man damit jetzt anders programmieren kann, füllt vermutlich ein Buch.
Die Kurzfassung
Template-Strings: Mit """..."""
können jetzt String-Literale definiert werden bei welchen
man Quotes wie " und
' nicht mehr
maskieren muss und damit in solche Literale nun
kompletten XML/HTML-Code auch mit Zeilenumbrüchen
kopieren kann.
An Informationen sollte den meisten ausreichen.
FootNotes, Keywords, Tags
Objektorientierte Programmierung
Hinweise, Rechte, Marken
UIO3 Es ist einfacher als Du denkst.
Stelle noch heute Deine Anfrage.

