Zusammenfassung - Mitarbeiter-Hierarchie
Teil des Abschnitts Objektorientierte Programmierung der Java-Journey von Coddy — Lektion 27 von 87.
Aufgabe
EinfachLassen Sie uns ein vollständiges Mitarbeiter-Hierarchiesystem aufbauen, das alle Vererbungskonzepte aus diesem Kapitel zusammenführt. Sie werden eine Unternehmensstruktur erstellen, in der verschiedene Arten von Mitarbeitern gemeinsame Attribute teilen, aber ihre eigenen spezialisierten Verhaltensweisen haben.
Sie werden Ihren Code über vier Dateien organisieren:
Employee.java: Erstellen Sie die Basisklasse, die alle Mitarbeiter teilen. Jeder Mitarbeiter hat einen Namen und ein Gehalt. Fügen Sie einen Konstruktor hinzu, der beide Felder initialisiert, und eine MethodegetDetails(), die Folgendes zurückgibt:[name] earns $[salary]. Fügen Sie außerdem eine Methodework()hinzu, die Folgendes ausgibt:[name] is working.Manager.java: Erstellen Sie eine Klasse, die Employee erweitert. Manager haben ein zusätzliches FeldteamSize, das angibt, wie viele Personen sie leiten. Verwenden Siesuper, um die Initialisierung der Elternklasse zu handhaben. Überschreiben Sie die Methodework(), um Folgendes auszugeben:[name] is managing a team of [teamSize]. Fügen Sie eine MethodegetManagerDetails()hinzu, die Folgendes zurückgibt:Manager: [name] earns $[salary], Team size: [teamSize].Developer.java: Erstellen Sie eine weitere Klasse, die Employee erweitert. Entwickler haben ein Feldlanguagefür ihre Programmierspezialisierung. Verwenden Sie auch hiersuperfür den Teil der Elternklasse. Überschreiben Siework(), um Folgendes auszugeben:[name] is coding in [language]. Fügen Sie eine MethodegetDeveloperDetails()hinzu, die Folgendes zurückgibt:Developer: [name] earns $[salary], Language: [language].Main.java: Bringen Sie hier alles zusammen. Sie erhalten fünf Eingaben: einen Mitarbeiternamen, ein Gehalt, die Teamgröße für den Manager, einen weiteren Namen und eine Programmiersprache für den Entwickler. Erstellen Sie einen Manager und einen Developer, rufen Sie dann für jeden deren spezialisierte Detailmethode gefolgt von ihrerwork()-Methode auf.
Sie erhalten fünf Eingaben in dieser Reihenfolge: Manager-Name (String), Manager-Gehalt (double), Teamgröße (int), Entwickler-Name (String) und Programmiersprache (String). Verwenden Sie ein Gehalt von 75000.0 für den Entwickler.
Formatieren Sie alle Gehaltswerte mit 2 Dezimalstellen unter Verwendung von String.format("%.2f", salary). Ihre Ausgabe sollte insgesamt vier Zeilen enthalten - 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 this-SchlüsselwortMethodenFelder (Attribute)Konstruktor-MethodeKonstruktor-ÜberladungRückblick – Einfacher Taschenrechner4Vererbung
Grundlagen der Vererbung (extends)Das super-SchlüsselwortMethoden überschreiben (@Override)Konstruktor-VerkettungDie Object-KlasseEinfache & mehrstufige VererbungWarum keine Mehrfachvererbung von KlassenZusammenfassung - Mitarbeiter-Hierarchie7Spezielle Methoden & Object-Klasse
toString()-Methodeequals() und hashCode()clone()-MethodecompareTo() und ComparableComparator-InterfaceZusammenfassung – Benutzerdefiniertes Sortieren2Zugriffsmodifikatoren & Kapselung
Überblick über ZugriffsebenenGetter- und Setter-MethodenInformation HidingDas final-SchlüsselwortRückblick – Bankkonto-Manager5Polymorphismus
Grundlagen der MethodenüberladungMethodenüberschreibung (Laufzeit)Upcasting und DowncastingDer instanceof-OperatorAbstrakte Klassen und MethodenZusammenfassung – Formenrechner8Fortgeschrittene OOP-Konzepte
Komposition vs. VererbungAggregation vs. KompositionInnere, geschachtelte & anonyme KlassenEnums und Enum-MethodenRecords (Java 16+)Sealed Classes (Java 17+)11Design Patterns Teil 1
Einführung in Design PatternsSingleton-PatternFactory-PatternBuilder-PatternObserver-PatternStrategy-Pattern14Abschlussherausforderungen
E-Learning-PlattformBanksystemSpielcharakter-EntwicklungFahrzeugvermietung3Klasseneigenschaften & Statische Member
Instanz- vs. statische VariablenStatische MethodenStatische BlöckeKonstanten (static final)Zusammenfassung – Zähler & Utility6Interfaces & Abstrakte Klassen
Einführung in InterfacesInterfaces implementierenImplementierung mehrerer InterfacesDefault- & statische Methoden in InterfacesAbstrakte Klassen vs. InterfacesFunktionale InterfacesZusammenfassung - Zahlungssystem