Universitäts-Verwaltungssystem
Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy. Lektion 55 von 56.
Aufgabe
In dieser Herausforderung haben wir ein Universitätssystem mit verschiedenen Arten von Personen (Studenten, Professoren), die unterschiedliche Rollen und Verhaltensweisen haben.
1. Vervollständige die Klasse Person:
- Füge die Methode
introduce()hinzu, die"Hi, I'm ${name}"zurückgibt
2. Vervollständige die Klasse Student:
- Überschreibe
introduce(), um${super.introduce()}, a ${this.major} studentzurückzugeben. Beispiel: "Hi, I'm Alice, a Computer Science student" - Füge die Methode
addGrade(grade)hinzu, die eine Note zwischen 0 und 100 entgegennimmt- Validierung: Überprüfe, ob die Note zwischen 0 und 100 liegt
- Wenn gültig: Füge sie dem Array
this.gradeshinzu - Wenn ungültig: Logge:
"Grade must be between 0 and 100"
3. Vervollständige die Klasse Professor:
- Überschreibe
introduce(), um“Prof. ${name} from ${department}” zurückzugeben. Beispiel: “Prof. Smith from Computer Science”
Probier es selbst
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Personen erstellen
const student1 = new Student('Alice', 20, 'Computer Science');
const prof1 = new Professor('Dr. Johnson', 50, 'Mathematics');
console.log(student1.introduce()); // "Hi, I'm Alice, a Computer Science student"
console.log(prof1.introduce()) // "Prof. Dr. Johnson from Mathematics"
student1.addGrade(85);
student1.addGrade(90);
student1.addGrade(95);
console.log(`${student1.name}'s GPA: ${student1.getGPA()}`); // ~3.6
student1.addGrade(105); // Sollte ausgeben: "Grade must be between 0 and 100"Alle Lektionen in Objektorientierte Programmierung
1Objekte & das this-Schlüsselwort
Kurze Wiederholung: ObjekteMethoden zu Objekten hinzufügenDas this-Schlüsselwort verstehenKonstruktorfunktionenDas new-SchlüsselwortWiederholungs-Challenge7Vererbung & das extends-Schlüsselwort
VererbungDie „ist-ein“-BeziehungDas extends-SchlüsselwortDie super()-MethodeVererben von Eigenschaften & MethodenWiederholungs-Challenge10Polymorphie
Was ist Polymorphie?Geerbte Methoden überschreibenVerwendung von superWiederholungs-Challenge13Komposition vs. Vererbung
Die "hat-ein"- vs. "ist-ein"-BeziehungDie Grenzen tiefer VererbungObjekte zusammenbauen2Code organisieren
Was sind Module?Exportieren mit exportImportieren mit importDefault- vs. benannte Exports5Kapselung & Zugriff
KapselungÖffentliche & private KlassenfelderPrivate MethodenWiederholungs-Herausforderung8OOP-Code strukturieren
Klassen in Modulen organisieren11Projekt: Ein Shape-Renderer
Setup: Shape-Klasse & ExportCircle-Klasse: VererbungOverriding & Area-MethodeStatischer Shape-Zähler14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit KompositionValidierung der Buchautoren3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und AuszahlungenKontostand als privates Feld9Statische Methoden & Eigenschaften
Klassenebene vs. InstanzebeneStatische EigenschaftenStatische HilfsmethodenWiederholungs-Challenge12Getter & Setter
Die Schlüsselwörter get und setBerechnete EigenschaftenValidierung und SeiteneffekteWiederholungs-Challenge15Abschluss-Herausforderungen
Spielfiguren-BuilderE-Commerce ProduktsystemUniversitäts-VerwaltungssystemSmart-Home-GerätesystemÜbe selbstständig: Online-JavaScript-Compiler