Bài giảng Lập trình hướng đối tượng – Bài 06: Kết tập và kế thừa
lượt xem 4
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
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
- 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
- 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
- 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
- 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
- 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
- 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
- Ư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
- 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
- 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
- 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
- 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
- 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
- Ví dụ om .c ng co an th o ng du u cu 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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
- 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
- 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
- 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
- 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
- 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
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p | 140 | 19
-
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 p | 171 | 15
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 176 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 142 | 9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 81 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 104 | 8
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 110 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan về OOP
0 p | 146 | 7
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 67 | 6
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 117 | 6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 100 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 106 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 143 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 12 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 18 | 3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p | 11 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn