Lớp Book với composition
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 51 trên 56.
Thử thách
Tạo lớp Book bằng composition
Nhiệm vụ của bạn:
- Trong tệp
Book.js, hãy import lớpAuthorở đầu tệp - Tạo và export lớp
Bookvới:- Các trường private:
#title,#author,#isCheckedOut - Hàm khởi tạo nhận
titlevàauthor - Hai getter:
titlevàauthorInfo, getter sau trả về tên tác giả
- Các trường private:
- Trong
main.js, thêm import cho lớpBook
Composition được áp dụng như thế nào ở đây:
Composition nghĩa là mối quan hệ "has-a". Trong lớp Book:
- Book HAS-AN Author (không phải "is-an" Author)
- Book chứa một instance Author như một trong các thành phần của nó
- Author tồn tại độc lập và có thể được nhiều Book sử dụng
- Đây là composition: tạo các đối tượng phức tạp (Book) từ những đối tượng đơn giản hơn (Author)
Tự làm thử
import { Author } from './Author.js';
// TODO: Nhập lớp Book
// Kiểm thử
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);
console.log('Book title:', book.title); // Đầu ra cần là: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // Đầu ra cần là: "Author: J.K. Rowling"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ậpTự luyện tập: Trình biên dịch JavaScript online