intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình hướng đối tượng – Bài 06: Kết tập và kế thừa

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:54

29
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục tiêu của bài học này nhằm giúp: Giải thích về khái niệm tái sử dụng mã nguồn, chỉ ra được bản chất, mô tả các khái niệm liên quan đến đến kết tập và kế thừa, so sánh kết tập và kế thừa, biểu diễn được kết tập và kế thừa trên UML,... Mời các bạn cùng tham khảo bài giảng để biết thêm nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình hướng đối tượng – Bài 06: Kết tập và kế thừa

  1. om Bộ môn Công nghệ Phần mềm .c Viện CNTT & TT ng Trường Đại học Bách Khoa Hà Nội co an th ng LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG o du Bài 06. Kết tập và kế thừa u cu CuuDuongThanCong.com https://fb.com/tailieudientucntt
  2. Mục tiêu bài học om ◼ Giải thích về khái niệm tái sử dụng mã nguồn .c ◼ Chỉ ra được bản chất, mô tả các khái niệm ng liên quan đến đến kết tập và kế thừa co So sánh kết tập và kế thừa an ◼ th Biểu diễn được kết tập và kế thừa trên UML ng ◼ o Giải thích nguyên lý kế thừa và thứ tự khởi du ◼ tạo, hủy bỏ đối tượng trong kế thừa u cu ◼ Áp dụng các kỹ thuật, nguyên lý về kết tập và kết thừa trên ngôn ngữ lập trình Java 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  3. Nội dung om 1. Tái sử dụng mã nguồn .c 2. Kết tập (Aggregation) ng Kế thừa (Inheritance) co 3. an 4. Ví dụ và bài tập th o ng du u cu 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  4. Nội dung om 1. Tái sử dụng mã nguồn .c 2. Kết tập (Aggregation) ng Kế thừa (Inheritance) co 3. an 4. Ví dụ và bài tập th o ng du u cu 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  5. 1. Tái sử dụng mã nguồn (Re-usability) om ◼ Tái sử dụng mã nguồn: Sử .c dụng lại các mã nguồn đã ng viết co Lập trình cấu trúc: Tái sử dụng an ◼ hàm/chương trình con th ng ◼ OOP: Khi mô hình thế giới thực, o du tồn tại nhiều loại đối tượng có các thuộc tính và hành vi tương u cu tự hoặc liên quan đến nhau ◼ → Làm thế nào để tái sử dụng lớp đã viết? 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  6. 1. Tái sử dụng mã nguồn (2) om ◼ Các cách sử dụng lại lớp đã có: .c ◼ Sao chép lớp cũ thành 1 lớp khác → Dư thừa và ng khó quản lý khi có thay đổi co Tạo ra lớp mới là sự tập hợp hoặc sử dụng các an ◼ đối tượng của lớp cũ đã có → Kết tập (Aggregation) th o ng Tạo ra lớp mới trên cơ sở phát triển từ lớp cũ đã du ◼ có → Kế thừa (Inheritance) u cu 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  7. Ưu điểm của tái sử dụng mã nguồn om ◼ Giảm thiểu công sức, chi phí .c ◼ Nâng cao chất lượng phần ng mềm co Nâng cao khả năng mô hình an ◼ hóa thế giới thực th ng Nâng cao khả năng bảo trì o du ◼ (maintainability) u cu 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  8. Nội dung om 1. Tái sử dụng mã nguồn .c 2. Kết tập (Aggregation) ng Kế thừa (Inheritance) co 3. an 4. Ví dụ và bài tập th o ng du u cu 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  9. 2. Kết tập om ◼ Ví dụ: .c ◼ Điểm ng Tứ giác gồm 4 điểm co ◼ → Kết tập an Kết tập th ◼ ng ◼ Quan hệ chứa/có ("has- o du a") hoặc là một phần u (is-a-part-of) cu 9 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  10. 2.1. Bản chất của kết tập om ◼ Kết tập (aggregation) .c ◼ Tạo ra các đối tượng của các lớp có sẵn trong ng lớp mới → thành viên của lớp mới. co Kết tập tái sử dụng thông qua đối tượng an ◼ th ◼ Lớp mới ng Lớp toàn thể (Aggregate/Whole), o ◼ du ◼ Lớp cũ u cu ◼ Lớp thành phần (Part). 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  11. 2.1. Bản chất của kết tập (2) om ◼ Lớp toàn thể chứa đối tượng .c của lớp thành phần ng Là một phần (is-a-part of) của co ◼ lớp toàn thể an Tái sử dụng các thành phần dữ th ◼ ng liệu và các hành vi của lớp thành o phần thông qua đối tượng thành du phần u cu 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  12. 2.2. Biểu diễn kết tập bằng UML om ◼ Sử dụng "hình thoi" tại đầu của lớp toàn thể .c Sử dụng bội số quan hệ ng ◼ (multiplicity) tại 2 đầu co ◼ 1 số nguyên dương: 1, 2,... an th ◼ Dải số (0..1, 2..4) ng ◼ *: Bất kỳ số nào o du ◼ Không có: Mặc định là 1 u ◼ Tên vai trò (rolename) 1 4 cu TuGiac Diem ◼ Nếu không có thì mặc định là tên của lớp (bỏ viết hoa chữ cái đầu) 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  13. Ví dụ om .c ng co an th o ng du u cu 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  14. 2.3. Minh họa trên Java om class Diem { private int x, y; .c public Diem(){} ng public Diem(int x, int y) { co this.x = x; this.y = y; an } th public void setX(int x){ this.x = x; } ng public int getX() { return x; } o du public void printDiem(){ System.out.print("(" + x + ", " + y + ")"); u cu } } 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  15. class TuGiac { 1 4 private Diem d1, d2; TuGiac Diem private Diem d3, d4; public TuGiac(Diem p1, Diem p2, om Diem p3, Diem p4){ .c d1 = p1; d2 = p2; d3 = p3; d4 = p4; ng } co public TuGiac(){ an d1 = new Diem(); d2 = new Diem(0,1); th d3 = new Diem (1,1); d4 = new Diem (1,0); ng } o du public void printTuGiac(){ u d1.printDiem(); d2.printDiem(); cu d3.printDiem(); d4.printDiem(); System.out.println(); } 15 } CuuDuongThanCong.com https://fb.com/tailieudientucntt
  16. public class Test { public static void main(String arg[]) { om Diem d1 = new Diem(2,3); .c Diem d2 = new Diem(4,1); Diem d3 = new Diem (5,1); ng Diem d4 = new Diem (8,4); co an TuGiac tg1 = new TuGiac(d1, d2, d3, d4); TuGiac tg2 = new TuGiac(); th tg1.printTuGiac(); ng tg2.printTuGiac(); o } du } u cu 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  17. Cách cài đặt khác 1 4 TuGiac Diem om class TuGiac { private Diem[] diem = new Diem[4]; .c public TuGiac(Diem p1, Diem p2, ng Diem p3, Diem p4){ co diem[0] = p1; diem[1] = p2; an th diem[2] = p3; diem[3] = p4; ng } o public void printTuGiac(){ du diem[0].printDiem(); diem[1].printDiem(); u cu diem[2].printDiem(); diem[3].printDiem(); System.out.println(); } } 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  18. 2.4. Thứ tự khởi tạo trong kết tập om ◼ Khi một đối tượng được tạo mới, các thuộc .c tính của đối tượng đó đều phải được khởi tạo ng và gán những giá trị tương ứng. co ◼ Các đối tượng thành phần được khởi tạo an th trước ng → Các phương thức khởi tạo của các lớp của o du các đối tượng thành phần được thực hiện u cu trước 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  19. Nội dung om 1. Tái sử dụng mã nguồn .c 2. Kết tập (Aggregation) ng Kế thừa (Inheritance) co 3. an 4. Ví dụ và bài tập th o ng du u cu 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  20. 3.1. Tổng quan về kế thừa om ◼ Ví dụ: .c ◼ Điểm ng ◼ Tứ giác gồm 4 điểm co → Kết tập an th ◼ Tứ giác ng ◼ Hình vuông o du → Kế thừa u cu 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2