Ausgewähltes Projekt / 01
Java Backend 90d.
Ein pausierter Java-Lernpfad mit drei dokumentierten Praxisschritten: von prozeduralen Bankoperationen zu gekapselten Objekten, Vererbung und Methodenüberschreibung.
Projektumfang
Inhalte des Projekts.
- 01Java-Grundlagen
- 02Kapselung
- 03Konstruktoren und Validierung
- 04Vererbung
- 05Überschreibung und Polymorphie
Überblick
Ein praktischer Lernweg, festgehalten im Code.
Das Repository bündelt aufeinander aufbauende Java-Übungen. Verlauf und Dateien belegen drei abgeschlossene Schritte: grundlegende Operationen, Kapselung und einen ersten Vererbungszusammenhang. Es ist ein laufendes Lernprojekt, keine fertige Anwendung.
Das Projekt ist derzeit pausiert, während ich andere Lernschwerpunkte verfolge.
Lernfortschritt
Drei Schritte vom gemeinsamen Zustand zur Polymorphie.
01Bankoperationen in einem prozeduralen Ablauf
Tag 1 · Java-Grundlagen
Ein Konsolenmenü steuert die Eingabe und ruft Operationen auf, die einen statischen Kontostand verändern. Die Eingabe prüft außerdem ungültige Beträge und Abhebungen über dem Guthaben.
Dateien BankApp.java (an Tag 2 in BankApp1.java umbenannt)
Lernziel Variablen, statische Methoden, Bedingungen, Schleifen und Exceptions.
02Zustand und Verhalten in einem Objekt
Tag 2 · Kapselung
BankAccount wird mit einem Anfangsguthaben erstellt. Das Guthaben ist privat; Ein- und Auszahlungen prüfen ihre Regeln innerhalb der Objektmethoden.
Dateien BankAccount.java, BankApp.java
Lernziel Konstruktoren, Instanzzustand, Kapselung und Zuständigkeit für Verhalten.
03Benutzertypen spezialisieren
Tag 3 · Vererbung und Überschreibung
User validiert Name und E-Mail, erzeugt eine UUID und definiert getRole(). Admin erweitert User und überschreibt die Methode; Main verwendet für User- und Admin-Instanzen eine Referenz vom Typ User.
Dateien User.java, Admin.java, Main.java
Lernziel Vererbung, Überschreibung und polymorphe Methodenaufrufe. Ein Berechtigungssystem ist nicht implementiert.
Code-Entwicklung
Von Operationen auf gemeinsamem Zustand zu Objekten mit eigenen Rollen.
Die Ausschnitte stammen aus den Übungen der ersten drei Tage. Sie zeigen konkrete Änderungen im Code, ohne eine Anwendungsarchitektur vorzutäuschen, die das Repository noch nicht enthält.
BankApp1
Tag 1 · statischer Zustand und einfache Operationprivate static double balance = 1000.0;
public static double deposit(double value) {
balance += value;
return balance;
}
BankAccount
Tag 2 · Zustand und Verhalten im Objektprivate double balance;
public void deposit(double amount) {
if (amount <= 0) {
throw new IllegalArgumentException(
"The amount must be greater than 0."
);
}
balance += amount;
}
Admin
Tag 3 · Spezialisierung durch Vererbungpublic class Admin extends User {
public Admin(String name, String email) {
super(name, email);
}
@Override
public String getRole() {
return "Admin";
}
}
User└──AdminMain weist außerdem eine Admin-Instanz einer Variablen vom Typ User zu; getRole() verwendet dabei die überschriebene Implementierung von Admin.
Geübte Konzepte
Grundlagen, die in den Übungen sichtbar sind.
- Java-GrundlagenVariablen, Methoden, Bedingungen, Schleifen und Konsoleneingaben.
- KapselungPrivates Guthaben und geprüfte Operationen in BankAccount.
- Konstruktoren und ValidierungObjektinitialisierung sowie Prüfung von Name und E-Mail in User.
- Vererbung und ÜberschreibungAdmin erweitert User und definiert getRole() neu.
- PolymorphieMain referenziert eine Admin-Instanz über den Typ User.
Lernerfahrung
Was mir dieses Projekt beigebracht hat.
Durch die Entwicklung wurde klarer, wo Zustand und Regeln hingehören: zuerst in gebündelte Abläufe, dann in ein Objekt, das seinen Zustand selbst schützt, und schließlich in eine spezialisierte Klasse, die geerbtes Verhalten verändert.