Alle ProjekteProjekt / 01

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.

Technologien
Java
Status

Pausiert / Lernprojekt

Repository ansehen

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.

01

Bankoperationen 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.

02

Zustand 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.

03

Benutzertypen 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 Operation
private static double balance = 1000.0;

public static double deposit(double value) {
    balance += value;
    return balance;
}

BankAccount

Tag 2 · Zustand und Verhalten im Objekt
private 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 Vererbung
public class Admin extends User {
    public Admin(String name, String email) {
        super(name, email);
    }

    @Override
    public String getRole() {
        return "Admin";
    }
}
UserAdmin

Main 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.

Nächstes ProjektNode HTTP API