Ngôn ngữ lập trình - kế thừa
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Ngôn ngữ lập trình - kế thừaLậptrìnhC++1 1Kếthừa Quan hệ “has a” và “is a”1. Bài toán minh hoạ composition2. Kế thừa đơn3. Nạp chồng4. Từ khoá protected5. Review6. Bài tập7. 2Quanhệ“hasa”và“isa” Các đối tượng có thể có quan hệ với nhau. Quan hệ “has a”: A “has a” B nếu trong đối tượng A có một thành phần là đối tượng B (quan hệ bao gồm - composition) Ví dụ: Đối tượng Ngôi nhà có thành phần là đối tượng mái nhà, Tường và Cửa ra vào. Đối tượng Hình chữ nhật có thành phần là Điểm trên trái và dưới phải. Đối tượng Sinh viên có một thành phần là đối tượng Ngày tháng (ngày sinh)... 3Quanhệ“hasa”và“isa” Quan hệ “is a”: A “is a” B nếu đối tượng A có những đặc tính của đối tượng B (quan hệ kế thừa - inheritance) Ví dụ: Con voi có bản chất là một Động vật. Hình cầu là một sự mở rộng của Hình tròn. Sinh viên đại cương và Sinh viên chuyên ngành đều có những đặc điểm của Sinh viên... Chú ý: Trong lập trình đôi khi ta có thể cài đặt quan hệ giữa các đối tượng một cách “linh hoạt”. Chẳng hạn có thể coi Hình tròn là đối tượng chứa một Điểm (tâm hình tròn) hoặc là một sự kế thừa từ đối tượng Điểm (!?). 4Vídụminhhoạcomposition Xây dựng lớp Hinhchunhat từ lớp Diem #include // Lop Diem class Diem { private: int x, y; public: Diem(); // Cau tu mac dinh Diem(int xx, int yy); // Cau tu khoi tao toa do void DatToado(int xx, int yy); // Dat toa do int LayX(); // Tra ve toa do x int LayY(); // Tra ve toa do y }; 5Vídụminhhoạcomposition // Cai dat phuong thuc Diem::Diem() { DatToado(0, 0); } Diem::Diem(int xx, int yy) { DatToado(xx, yy); } void Diem::DatToado(int xx, int yy) { x = xx; y = yy; } int Diem::LayX() { return x; } int Diem::LayY() { return y; } 6Vídụminhhoạcomposition // Lop Hinhchunhat class Hinhchunhat { Dữ liệu của Hinhchunhat private: gồm điểm trên trái và Diem tt, dp; điểm dưới phải public: Hinhchunhat(); // Cau tu mac dinh Hinhchunhat(int xtt, int ytt, int xdp, int ydp); // Khoi tao toa do void HienThongtin(); // Hien thi thong tin }; 7Vídụminhhoạcomposition Hinhchunhat::Hinhchunhat() : tt(0,0), dp(0,0) {} Hinhchunhat::Hinhchunhat(int xtt, int ytt, int xdp, int ydp) : tt(xtt, ytt), dp(xdp, ydp) {} Khởi tạo các đối tượng thành phần void Hinhchunhat::HienThongtin() { coutVídụminhhoạcomposition // main void main() { Hinhchunhat hcna; Hinhchunhat hcnb(1,1,20,10); hcna.HienThongtin(); hcnb.HienThongtin(); } 9Vídụminhhoạcomposition Kết quả trên màn hình: Toi la hinh chu nhat Toa do diem tren trai la: [0,0] Toa do diem duoi phai la: [0,0] Toi la hinh chu nhat Toa do diem tren trai la: [1,1] Toa do diem duoi phai la: [20,10] 10Quanhệcomposition Chú ý: Cấu tử của Diem sẽ được gọi trước cấu tử của Hinhchunhat Huỷ tử của Hinhchunhat sẽ được gọi trước huỷ tử của Diem. Nhận xét: Quan hệ composition là rất “tự nhiên”. Vì class Diem cũng là một kiểu dữ liệu (do người dùng tự định nghĩa) cho nên việc một đối tượng thuộc kiểu Diem có trong Hinhchunhat cũng giống như một dữ liệu kiểu int có trong một lớp nào đó. 11Kếthừa(Inheritance) Kế thừa là một trong những đặc điểm quan trọng của OOP, nó cho phép xây dựng những lớp mới dựa trên những lớp đã có sẵn. Lớp đã có sẵn gọi là lớp cơ sở (base class). Lớp mới gọi là lớp dẫn xuất (derived class). Lớp cơ sở Lớp dẫn xuất 12Kếthừa(Inheritance) Một số ví dụ về kế thừa: Động vật Hình tròn Sinh viên Hình cầu Đv trên cạn Đv dưới nước Sinh viên ĐC Con ếch Sinh viên CN Con cá 13Kếthừađơn Ví dụ: Xây dựng lớp Hinhcau kế thừa từ lớp Hinhtron // lớp Hinhtron class Hinhtron { private: int bankinh; public: Hinhtron(); Hinhtron(int bk); void DatBankinh(int bk); int LayBankinh(); int LayDuongkinh(); float LayDientich(); }; Giả sử các phương thức đã được định nghĩa 14Kếthừađơn // lớp Hinhcau class Hinhcau : public Hinhtron { public: Lớp Hình cầu kế thừa dữ l ...
Tìm kiếm theo từ khóa liên quan:
công nghệ thông tin ngôn ngữ lập trình kỹ thuật lập trình lập trình C++ Đặc điểm của OOP Kế thừa đơnGợi ý tài liệu liên quan:
-
52 trang 431 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 318 0 0 -
74 trang 302 0 0
-
96 trang 296 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 289 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 283 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 267 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 267 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
64 trang 264 0 0
-
Bài giảng An toàn và bảo mật thông tin - Trường đại học Thương Mại
31 trang 255 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
47 trang 231 0 0
-
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 226 0 0 -
Giáo trình Hệ điều hành: Phần 2
53 trang 221 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 218 1 0 -
LUẬN VĂN: TÌM HIỂU PHƯƠNG PHÁP HỌC TÍCH CỰC VÀ ỨNG DỤNG CHO BÀI TOÁN LỌC THƯ RÁC
65 trang 216 0 0