Textmenü-basierte Benutzerverwaltung mit Benutzer-, Admin- und Gast-Klassen — entwickelt im Rahmen der Berufsschulausbildung zur Fachinformatikerin Anwendungsentwicklung (LF11).
Dieses Projekt demonstriert objektorientierte Programmierung mit Vererbung in Java. Es implementiert ein interaktives Verwaltungssystem für drei Benutzertypen (Benutzer, Admin, Gast) mit vollständiger CRUD-Funktionalität und einer persistenten ArrayList-basierte Datenverwaltung.
| Funktion | Beschreibung |
|---|---|
| Benutzerliste anzeigen | Alle Benutzer mit Details ausgeben |
| Benutzer hinzufügen | Neue Benutzer/Admin/Gast erstellen |
| Benutzer löschen | Nach E-Mail suchen und entfernen |
| Benutzer suchen | Nach E-Mail suchen und Details anzeigen |
| Benutzer bearbeiten | Name, E-Mail oder Passwort ändern |
| Anzahl anzeigen | Statische Benutzerzahl anzeigen |
| Typ | Besonderheiten |
|---|---|
| Benutzer | Basis-Klasse mit Name, E-Mail, Passwort, Aktiv-Status |
| Admin | Extends Benutzer, zusätzliches superAdmin-Flag |
| Gast | Extends Benutzer, zusätzliches Gültigkeits-Flag (Tage) |
- Menü-Auswahl (0-6)
- Benutzer-Daten: Name, E-Mail, Passwort
- Admin-Typ: SuperAdmin ja/nein
- Gast-Gültigkeitsdauer: Anzahl Tage
- Such- und Bearbeitungsfilter: E-Mail-Adressen
- Benutzer-Anzahl wird automatisch gezählt (statisches Attribut)
- E-Mail-Vergleiche sind case-insensitive
- Nur existierende Benutzer können bearbeitet oder gelöscht werden
- Benutzer-Namen bei Gast: Suffix "_guest" wird automatisch angehängt
| Konzept | Anwendung im Projekt |
|---|---|
Vererbung (extends) |
Admin und Gast erben von Benutzer |
| Konstruktor-Überladung | Mehrere Konstruktoren pro Klasse |
super() |
Aufrufen von Parent-Konstruktoren |
| Polymorphismus | info()-Methode wird überschrieben |
| Statische Attribute | private static int anzahl für Benutzer-Zähler |
| Statische Methoden | getAnzahl(), benutzerGeloescht() |
| ArrayList | Dynamische Verwaltung der Benutzer |
| Scanner | Interaktive Eingabe von der Konsole |
| Switch/Case | Menü-Navigierung und Funktionsauswahl |
| While-Schleifen | Eingabe-Validierung und Menü-Wiederholungen |
| String-Vergleiche | equalsIgnoreCase() für robuste Eingabe-Behandlung |
- Basis-Klasse für alle Benutzertypen
- Verwaltet Benutzerdaten: Name, E-Mail, Passwort, Aktiv-Status
- Statischer Zähler für Gesamtanzahl der Benutzer
- Getter/Setter für alle Attribute
info()-Methode für Ausgabe
- Erbt von Benutzer
- Zusätzliches Attribut:
superAdmin(boolean) - Überschriebene
info()-Methode mit Admin-Status
- Erbt von Benutzer
- Zusätzliches Attribut:
gueltigBis(Tage) - Überschriebene
info()-Methode mit Gültigkeitsdaten - Gast-Namen werden mit Suffix "_guest" angezeigt
- Einstiegspunkt des Programms
- Implementiert interaktives Menü-System
- CRUD-Operationen für Benutzer-Verwaltung
- Benutzer-Bearbeitung mit Unter-Menü
- Fehlerbehandlung mit
gefunden-Flagge
javac Tag07/Aufgaben/*.java
java Tag07.Aufgaben.MainVoraussetzungen: Java 8+, die IO-Utility-Klasse muss im gleichen Package vorhanden sein.
Dieses Projekt entstand als Übungsaufgabe in der Berufsschule (LF11 - Objektorientierte Programmierung).
Es demonstriert:
- Sichere Anwendung von Vererbung und Polymorphismus
- Korrekte Implementierung von Konstruktor-Ketten mit
this()undsuper() - Fehlerfreie Schleifenlogik mit korrekten Break- und Continue-Statements
- Statische Attribute und Methoden für globale Zähler
- Benutzerfreundliches Menü-System mit Eingabe-Validierung