Система управления университетом
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 55 из 56.
Задание
В этом испытании у нас есть университетская система с различными типами людей (студенты, профессора), которые имеют разные роли и поведение.
1. Дополните класс Person:
- Добавьте метод
introduce(), возвращающий"Hi, I'm ${name}"
2. Дополните класс Student:
- Переопределите
introduce(), чтобы он возвращал${super.introduce()}, a ${this.major} student. Пример: "Hi, I'm Alice, a Computer Science student" - Добавьте метод
addGrade(grade), который принимает оценку от 0 до 100- Валидация: Проверьте, находится ли оценка в диапазоне от 0 до 100
- Если валидна: Добавьте её в массив
this.grades - Если невалидна: Выведите в лог:
"Grade must be between 0 and 100"
3. Дополните класс Professor:
- Переопределите
introduce(), чтобы он возвращал“Prof. ${name} from ${department}”. Пример: “Prof. Smith from Computer Science”
Попробуйте сами
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Создание людей
const student1 = new Student('Alice', 20, 'Computer Science');
const prof1 = new Professor('Dr. Johnson', 50, 'Mathematics');
console.log(student1.introduce()); // "Привет, я Алиса, студентка факультета компьютерных наук"
console.log(prof1.introduce()) // "Проф. Д-р Джонсон с кафедры математики"
student1.addGrade(85);
student1.addGrade(90);
student1.addGrade(95);
console.log(`${student1.name}'s GPA: ${student1.getGPA()}`); // ~3.6
student1.addGrade(105); // Должно вывести: "Оценка должна быть в диапазоне от 0 до 100"Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление12Геттеры и сеттеры
Ключевые слова get и setВычисляемые свойстваВалидация и побочные эффектыИтоговое задание15Финальные испытания
Конструктор игровых персонажейСистема товаров для E-commerceСистема управления университетомСистема устройств умного дома