Tạo một lớp Rectangle và một lớp con là Parallelogram tính diện tích và chu vi của hình chữ nhật trong TypeScript.
Trong bài tập này, mình sẽ thách thức bản thân bằng việc tạo ra hai lớp: Rectangle (hình chữ nhật) và lớp con Parallelogram (hình bình hành) trong TypeScript. Mục tiêu của mình là tính diện tích và chu vi của hình chữ nhật và hình bình hành dựa trên các thông số về các cạnh và chiều cao.
Lưu ý: TypeScript cung cấp một cách tiếp cận mạnh mẽ cho lập trình hướng đối tượng. Mình sẽ tận dụng tính kế thừa để tạo lớp con từ lớp cha, giúp chúng ta tái sử dụng mã và tăng tính linh hoạt của mã lệnh.
Tạo lớp Rectangle và lớp con Parallelogram
Lớp Rectangle
Đầu tiên, mình sẽ tạo lớp Rectangle
. Một hình chữ nhật có độ dài width
và height
, và chúng ta sẽ tính diện tích và chu vi từ đây.
class Rectangle { width: number; height: number; constructor(width: number, height: number) { this.width = width; this.height = height; } calculateArea(): number { return this.width * this.height; } calculatePerimeter(): number { return 2 * (this.width + this.height); } } // Sử dụng lớp Rectangle để tính diện tích và chu vi của một hình chữ nhật const myRectangle = new Rectangle(4, 6); console.log("Diện tích của hình chữ nhật:", myRectangle.calculateArea()); console.log("Chu vi của hình chữ nhật:", myRectangle.calculatePerimeter());
Ở đây, mình đã tạo lớp Rectangle
với hai phương thức calculateArea
và calculatePerimeter
để tính diện tích và chu vi tương ứng của hình chữ nhật. Tiếp theo, mình sẽ mở rộng lớp này để tạo lớp Parallelogram
.
Lớp con Parallelogram
class Parallelogram extends Rectangle { base: number; constructor(width: number, height: number, base: number) { super(width, height); this.base = base; } calculateArea(): number { return this.base * this.height; } // Phương thức tính chu vi của hình bình hành calculatePerimeter(): number { return 2 * (this.base + this.height); } } // Sử dụng lớp Parallelogram để tính diện tích và chu vi của hình bình hành const myParallelogram = new Parallelogram(4, 6, 5); console.log("Diện tích của hình bình hành:", myParallelogram.calculateArea()); console.log("Chu vi của hình bình hành:", myParallelogram.calculatePerimeter());
Ở đây, mình đã tạo lớp Parallelogram
kế thừa từ lớp Rectangle
, với việc ghi đè (override) phương thức calculateArea
và triển khai một phương thức mới calculatePerimeter
để tính diện tích và chu vi của hình bình hành.
Kết quả
Diện tích của hình chữ nhật: 24 Chu vi của hình chữ nhật: 20 Diện tích của hình bình hành: 30 Chu vi của hình bình hành: 22
Các giá trị này là kết quả của tính toán diện tích và chu vi dựa trên các thông số về chiều rộng, chiều cao, và đáy của hình chữ nhật và hình bình hành.
Rectangle
(hình chữ nhật) và lớp con Parallelogram
(hình bình hành). Chúng ta đã tính toán diện tích và chu vi của hình chữ nhật và hình bình hành dựa trên các thông số về chiều rộng, chiều cao và đáy.
Qua việc sử dụng tính kế thừa và việc ghi đè phương thức, mình đã thấy cách mà mỗi lớp có thể mở rộng và điều chỉnh các tính năng để phù hợp với đặc điểm riêng của nó. Việc áp dụng nguyên lý này đã giúp chúng ta tạo ra các phương thức tính toán chính xác cho diện tích và chu vi của hình chữ nhật và hình bình hành.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Viết một lớp Triangle để tính diện tích và chu vi của một tam giác trong TypeScript.
- Tạo một lớp Shape và phương thức để tính diện tích,chu vi của hình vuông trong TypeScript.
- Tính diện tích và chu vi của các hình tròn và hình ellipse trong TypeScript.
- Tạo một lớp Rectangle và một lớp con là Parallelogram tính diện tích và chu vi của hình chữ nhật trong TypeScript.
- Viết một lớp Octagon để tính diện tích và chu vi của một hình bát giác trong TypeScript.
- Tạo lớp Pentagon và tính diện tích và chu vi của một hình ngũ giác đều trong TypeScript.
- Tạo lớp Hexagon để tính diện tích và chu vi của một hình lục giác trong TypeScript.
- Tạo lớp Animal với makeSound() trống,để tạo lớp con Dog, Cat, và Bird trong TypeScript.
- Tạo một chương trình người dùng nhập vào danh sách các đối tượng thuộc các lớp Dog, Cat, và Bird trong TypeScript.
- Xây dựng một lớp Zoo để quản lý các đối tượng Animal trong TyprScript.
- Viết một lớp EventListener có một phương thức listen() để lắng nghe các sự kiện trong TypeScript