Rückblick – Mitarbeiterhierarchie
Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy. Lektion 27 von 87.
Aufgabe
EinfachLass uns ein vollständiges System für eine Mitarbeiterhierarchie erstellen, das alle Vererbungskonzepte aus diesem Kapitel zusammenführt. Du wirst eine Unternehmensstruktur erstellen, in der verschiedene Mitarbeitertypen gemeinsame Attribute besitzen, aber über eigene spezialisierte Verhaltensweisen verfügen.
Du wirst deinen Code auf vier Dateien verteilen:
Employee.java: Erstelle die Basisklasse, die von allen Mitarbeitern gemeinsam genutzt wird. Jeder Mitarbeiter hat einen Namen und ein Gehalt. Füge einen Konstruktor hinzu, der beide Felder initialisiert, sowie eine MethodegetDetails(), die Folgendes zurückgibt:[name] earns $[salary]. Füge außerdem eine Methodework()hinzu, die Folgendes ausgibt:[name] is working.Manager.java: Erstelle eine Klasse, die Employee erweitert. Manager haben ein zusätzliches FeldteamSize, das angibt, wie viele Personen sie leiten. Verwendesuper, um die Initialisierung des Elternteils zu übernehmen. Überschreibe die Methodework(), sodass sie Folgendes ausgibt:[name] is managing a team of [teamSize]. Füge eine MethodegetManagerDetails()hinzu, die Folgendes zurückgibt:Manager: [name] earns $[salary], Team size: [teamSize].Developer.java: Erstelle eine weitere Klasse, die Employee erweitert. Entwickler haben ein Feldlanguagefür ihre Programmierspezialisierung. Verwende erneutsuperfür den Teil des Elternteils. Überschreibework(), sodass Folgendes ausgegeben wird:[name] is coding in [language]. Füge eine MethodegetDeveloperDetails()hinzu, die Folgendes zurückgibt:Developer: [name] earns $[salary], Language: [language].Main.java: Führe hier alles zusammen. Du erhältst fünf Eingaben: einen Mitarbeiternamen, ein Gehalt, die Teamgröße des Managers, einen weiteren Namen und eine Programmiersprache für den Entwickler. Erstelle einen Manager und einen Entwickler und rufe anschließend für jeden von ihnen zuerst die jeweilige spezialisierte Detailmethode und danach die Methodework()auf.
Du erhältst fünf Eingaben in dieser Reihenfolge: Name des Managers (String), Gehalt des Managers (double), Teamgröße (int), Name des Entwicklers (String) und Programmiersprache (String). Verwende für den Entwickler ein Gehalt von 75000.0.
Formatiere alle Gehaltswerte mit 2 Dezimalstellen unter Verwendung von String.format("%.2f", salary). Deine Ausgabe sollte insgesamt vier Zeilen umfassen – die Details und das Arbeitsverhalten des Managers, gefolgt von den Details und dem Arbeitsverhalten des Entwicklers.
Probier es selbst
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Eingaben lesen
String managerName = scanner.nextLine();
double managerSalary = scanner.nextDouble();
int teamSize = scanner.nextInt();
scanner.nextLine(); // Zeilenumbruch konsumieren
String developerName = scanner.nextLine();
String language = scanner.nextLine();
// Das Gehalt des Developers ist auf 75000.0 festgelegt
double developerSalary = 75000.0;
// TODO: Erstelle ein Manager-Objekt mit managerName, managerSalary und teamSize
// TODO: Erstelle ein Developer-Objekt mit developerName, developerSalary und language
// TODO: Gib die Details des Managers mit getManagerDetails() aus
// TODO: Rufe die Methode work() des Managers auf
// TODO: Gib die Details des Developers mit getDeveloperDetails() aus
// TODO: Rufe die Methode work() des Developers auf
}
}
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienEinführung in die OOPKlassen vs. ObjekteDas Schlüsselwort thisMethodenFelder (Attribute)KonstruktormethodeÜberladen von KonstruktorenRückblick – Einfacher Taschenrechner4Vererbung
Grundlegende Vererbung (extends)Das Schlüsselwort superÜberschreiben von Methoden (@Override)KonstruktorverkettungDie Object-KlasseEinfach- und mehrstufige VererbungWarum keine Mehrfachvererbung von KlassenRückblick – Mitarbeiterhierarchie7Spezielle Methoden & Object-Klasse
toString()-Methodeequals() und hashCode()clone()-MethodecompareTo() und ComparableComparator-SchnittstelleRückblick – Benutzerdefinierte Sortierung2Zugriffsmodifikatoren & Kapselung
Übersicht der ZugriffsebenenGetter- und Setter-MethodenInformationsverbergungDas Schlüsselwort finalRückblick – Bankkontoverwaltung5Polymorphismus
Grundlagen der MethodenüberladungMethodenüberschreibung (Laufzeit)Upcasting und DowncastingDer instanceof-OperatorAbstrakte Klassen und MethodenRückblick – Formrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungAggregation vs. KompositionInnere, verschachtelte & anonyme KlassenEnums und Enum-MethodenRecords (Java 16+)Versiegelte Klassen (Java 17+)11Entwurfsmuster Teil 1
Einführung in EntwurfsmusterSingleton-MusterFactory-MusterBuilder-MusterObserver-MusterStrategie-Muster14Abschließende Herausforderungen
E-Learning-PlattformBankingsystemEntwicklung einer SpielfigurFahrzeugvermietungsdienst3Klassen-Props & statische Member
Instanz- vs. statische VariablenStatische MethodenStatische BlöckeKonstanten (static final)Wiederholung – Counter & Utility6Schnittstellen & abstrakte Klassen
Einführung in InterfacesInterfaces implementierenMehrere Interfaces implementierenDefault & Static in InterfacesAbstrakte Klassen vs. InterfacesFunktionale InterfacesRückblick – ZahlungssystemÜbe selbstständig: Online-Java-Compiler