Hệ thống quản lý đại học
Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 55 trên 56.
Thử thách
Trong thử thách này, chúng ta có một hệ thống đại học với nhiều kiểu người khác nhau (sinh viên, giáo sư), mỗi kiểu có vai trò và hành vi riêng.
1. Hoàn thành lớp Person:
- Thêm phương thức
introduce()trả về"Hi, I'm ${name}"
2. Hoàn thành lớp Student:
- Ghi đè
introduce()để trả về${super.introduce()}, a ${this.major} student. Ví dụ: "Hi, I'm Alice, a Computer Science student" - Thêm phương thức
addGrade(grade)nhận điểm từ 0 đến 100- Kiểm tra hợp lệ: Kiểm tra xem điểm có nằm trong khoảng từ 0 đến 100 không
- Nếu hợp lệ: Thêm điểm vào mảng
this.grades - Nếu không hợp lệ: In ra:
"Grade must be between 0 and 100"
3. Hoàn thành lớp Professor:
- Ghi đè
introduce()để trả về“Prof. ${name} from ${department}”. Ví dụ: “Prof. Smith from Computer Science”
Tự làm thử
import { Person } from './person.js';
import { Student } from './student.js';
import { Professor } from './professor.js';
// Tạo các đối tượng người
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); // Sẽ in ra: "Grade must be between 0 and 100"Tất cả bài học trong Lập trình hướng đối tượng
1Đối tượng và từ khóa this
Ôn nhanh: đối tượngThêm phương thức vào đối tượngTìm hiểu từ khóa thisHàm khởi tạoTừ khóa newThử thách ôn tập7Kế thừa và từ khóa extends
Kế thừaQuan hệ "là một"Từ khóa extendsPhương thức super()Kế thừa thuộc tính và phương thứcThử thách ôn tập13Kết hợp hay kế thừa
Quan hệ “có một” và “là một”Những hạn chế của kế thừa nhiều tầngXây dựng đối tượng5Đóng gói và quyền truy cập
Đóng góiTrường công khai và trường riêng tưPhương thức riêng tưThử thách ôn tập8Tổ chức code OOP
Tổ chức các lớp thành module11Dự án: Trình hiển thị hình dạng
Thiết lập: lớp Hình dạng và xuấtKế thừa lớp Hình trònGhi đè và phương thức diện tíchBộ đếm hình dạng tĩnh6Dự án: Tài khoản ngân hàng đơn giản
Lớp BankAccountGửi tiền và rút tiềnSố dư dưới dạng thuộc tính riêng tư9Phương thức và thuộc tính tĩnh
Cấp lớp và cấp instanceThuộc tính tĩnhPhương thức tiện ích tĩnhThử thách ôn tập12Getter và setter
Từ khóa get và setThuộc tính tính toánKiểm tra hợp lệ và tác dụng phụThử thách ôn tập15Thử thách cuối cùng
Trình tạo nhân vật gameHệ thống sản phẩm thương mại điện tửHệ thống quản lý đại họcHệ thống thiết bị nhà thông minhTự luyện tập: Trình biên dịch JavaScript online