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: Vererbung14Bibliotheksverwaltungssystem
Entwurf der BibliothekBuch-Klasse mit Komposition3Klassen & Objekte
Was ist eine Klasse?Instanzen erstellenEigenschaften und MethodenWiederholungs-Challenge6Projekt: Ein einfaches Bankkonto
Klasse BankAccountEinzahlungen und Auszahlungen9Statische 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