System zarządzania uczelnią
Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 55 z 56.
Wyzwanie
W tym wyzwaniu mamy system uniwersytecki z różnymi typami osób (studentami, profesorami), które pełnią różne role i zachowują się w różny sposób.
1. Uzupełnij klasę Person:
- Dodaj metodę
introduce(), która zwraca"Hi, I'm ${name}"
2. Uzupełnij klasę Student:
- Zastąp metodę
introduce(), tak aby zwracała${super.introduce()}, a ${this.major} student. Przykład: "Hi, I'm Alice, a Computer Science student" - Dodaj metodę
addGrade(grade), która przyjmuje ocenę z zakresu od 0 do 100- Walidacja: Sprawdź, czy ocena mieści się w zakresie od 0 do 100
- Jeśli ocena jest prawidłowa: Dodaj ją do tablicy
this.grades - Jeśli ocena jest nieprawidłowa: Wyświetl komunikat:
"Grade must be between 0 and 100"
3. Uzupełnij klasę Professor:
- Zastąp metodę
introduce(), tak aby zwracała“Prof. ${name} from ${department}”. Przykład: “Prof. Smith from Computer Science”
Spróbuj swoich sił
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Utwórz osoby
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); // Powinno wypisać: "Grade must be between 0 and 100"Wszystkie lekcje w sekcji Programowanie obiektowe
1Obiekty i słowo kluczowe this
Szybka powtórka: obiektyDodawanie metod do obiektówZrozumienie słowa kluczowego thisFunkcje konstruktoraSłowo kluczowe newWyzwanie podsumowujące7Dziedziczenie i słowo kluczowe extends
DziedziczenieRelacja „jest rodzajem”Słowo kluczowe extendsMetoda super()Dziedziczenie właściwości i metodWyzwanie podsumowujące10Polimorfizm
Czym jest polimorfizm?Nadpisywanie odziedziczonych metodUżywanie superWyzwanie podsumowujące13Kompozycja a dziedziczenie
Relacja „ma” a relacja „jest”Ograniczenia głębokiego dziedziczeniaTworzenie obiektów2Organizowanie kodu
Czym są moduły?Eksportowanie za pomocą exportImportowanie za pomocą importEksporty domyślne a nazwane5Enkapsulacja i dostęp
EnkapsulacjaPubliczne i prywatne pola klasyMetody prywatneWyzwanie podsumowujące8Organizowanie kodu OOP
Organizowanie klas w moduły11Projekt: Renderer kształtów
Konfiguracja: klasa Shape i eksportDziedziczenie klasy CircleNadpisywanie i metoda obliczania polaStatyczny licznik kształtów14System zarządzania biblioteką
Projektowanie bibliotekiKlasa Book z kompozycjąWalidacja autora książki9Metody i właściwości statyczne
Poziom klasy a poziom instancjiWłaściwości statyczneStatyczne metody pomocniczeWyzwanie podsumowujące12Gettery i settery
Słowa kluczowe get i setWłaściwości obliczaneWalidacja i efekty uboczneWyzwanie podsumowujące15Wyzwania końcowe
Kreator postaci do grySystem produktów e-commerceSystem zarządzania uczelniąSystem urządzeń inteligentnego domuPoćwicz samodzielnie: Kompilator JavaScript online