1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình hướng đối tượng: Chương 4 - GV. Hà Văn Sang

26 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 250,3 KB

Nội dung

Chương 4 Kế thừa thuộc bài giảng lập trình hướng đối tượng, cùng nắm kiến thức trong chương này thông qua việc tìm hiểu một số nội dung chính sau: khái niệm, xây dựng lớp dẫn xuất, quyền truy xuất, định nghĩa lại quyền truy xuất, hàm khởi tạo và hàm huỷ, đa kế thừa, lớp cơ sở ảo.

Lập trình hướng đối tượng Lập trình hướng đối tượng Hà Văn Sang Hà Văn Sang Bộ môn: Tin học TC – KT Khoa HTTT, Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính Tel: 0982.165.568Academy Of Finance, Hanoi Email: sanghv@hvtc.edu.vn Website: http://www.hvtc.edu.vn/sanghv 7/3/2014 8:41 AM Lập trình hướng đối tượng CHƯƠNG IV Hà Văn Sang Khoa HTTT, Academy Of Finance, Hanoi 7/3/2014 8:41 AM Khái niệm Kế thừa: khả cho phép xây dựng lớp Được thừa hưởng thành phần từ hay nhiều lớp có (lớp sở) Trong lớp ta bổ sung thêm thành phần định nghĩa lại thành phần Ví dụ 1: Xây dựng lớp PS1 {ts, ms, nhập, in, tối giản} Lớp PS2 {ts, ms, nhập, in, tối giản, cộng, trừ, nhân chia phân số} Object Oriented Programing– Information Systems Department Khái niệm (tiếp) Ví dụ 2: Yêu cầu xây dựng lớp  Lớp NGƯỜI  Lớp SV  Lớp GV NGƯỜI Dl: ht, ns, gt Pt: nhap(), in() SV Dl: ht, ns, gt Pt: nhap(), in(), xếp loại() Object Oriented Programing– Information Systems Department GV Dl: ht, ns, gt Pt: nhap(), in(), tangluong() Khái niệm (tiếp) Kế thừa tạo mơ hình phân cấp: PS1 PS2 NGƯỜI SV GV Mơ hình kế thừa tạo quan hệ “is a” Ví dụ: đối tượng SV “là một” loại thuộc lớp NGƯỜI Object Oriented Programing– Information Systems Department Khái niệm (tiếp) Các loại kế thừa: PS1 PS2 A B C Kế thừa đơn: có lớp sở Đa kế thừa: có nhiều lớp sở Object Oriented Programing– Information Systems Department Xây dựng lớp dẫn xuất Cú pháp class :[kiểu dẫn xuất] ,[kiểu dẫn xuất] … { // Các thành phần lớp }; Object Oriented Programing– Information Systems Department Xây dựng lớp dẫn xuất Trong đó:  Kiểu dẫn xuất là: public protected private (ngầm định) public: tất public lớp cha pubic lớp private: tất thành phần public lớp cha private lớp Object Oriented Programing– Information Systems Department Quyền truy xuất (1) Quyền truy xuất lớp cha : (2) Kiểu dẫn xuất (1) private protected public private private private private protected private protected protected public private protected public (2) Quyền truy xuất lớp Object Oriented Programing– Information Systems Department Chú ý Ví dụ: Phân số Chú ý: Có thể gán đối tượng lớp vào đối tượng lớp cha PS a; PS1 b; a=b;// ok b=a; // problem bị cắt lấp đầy Khi gán, thừa (ko có lớp cha) bị cắt tỉa chuyển đổi kiểu lên an toàn Object Oriented Programing– Information Systems Department 10 Định nghĩa lại quyền truy xuất Chú ý: Khi định nghĩa lại quyền truy xuất với tp tên bị tác động Chỉ định lại quyền truy xuất theo quyền lớp cha Nếu lớp sở có nhiều tên khác quyền truy xuất khơng thể định nghĩa lại Nếu lớp có tên lớp che phủ lớp cha Muốn truy xuất phải viết tường minh Object Oriented Programing– Information Systems Department 12 Ví dụ: Xây dựng lớp số phức Gồm: phần thực, phần ảo Phương thức: nhập, in Xây dựng lớp SP1 kế thừa lớp SP Bổ sung: +, -, * Hàm main: Nhập số phức a,b Tính in a+b, a*b, modul Object Oriented Programing– Information Systems Department 13 Ví dụ: Xây dựng lớp thí sinh TS Gồm: SBD, sinh, khu vực Phương thức: nhập, in Xây dựng lớp TSA kế thừa lớp TS Bổ sung: điểm toán, lý, hoá, nhập, in Xây dựng lớp TSC kế thừa lớp TS Bổ sung: điểm văn, sử, địa, nhập, in Hàm main: Nhập ds thí sinh, in danh sách khối, in ds trúng tuyển theo khối Object Oriented Programing– Information Systems Department 14 Hàm khởi tạo hàm huỷ a Hàm khởi tạo - Hàm khởi tạo lớp cha không kế thừa - Mỗi đối tượng lớp coi đối tượng lớp cha Do đó: gọi hàm khởi tạo lớp kéo theo gọi hàm khởi tạo lớp cha Thứ tự gọi: Hàm khởi tạo lớp cha  Hàm khởi tạo lớp Ví dụ: hàm khởi tạo lớp A, B Object Oriented Programing– Information Systems Department 15 Hàm khởi tạo hàm huỷ Nếu xây dựng hàm khởi tạo lớp con: - Phải gọi hàm khởi tạo lớp cha tường minh Cú pháp ([tham số]):([tham số]) { } Chú ý: Hàm khởi tạo lớp sở thực trước Nếu lớp dẫn xuất có nhiều lớp sở trình tự thực tuân theo trình tự kế thừa Object Oriented Programing– Information Systems Department 16 Hàm khởi tạo hàm huỷ b Hàm huỷ Hàm huỷ lớp sở không kế thừa Các hàm huỷ thi hành theo trình tự ngược lại so với hàm khởi tạo Hàm huỷ lớp dẫn xuất thi hành trước hàm huỷ lớp sở Object Oriented Programing– Information Systems Department 17 Đa kế thừa Khái niệm Là khả xây dựng lớp dẫn xuất kế thừa từ nhiều lớp sở Đa kế thừa tính mạnh gây số vấn đề Object Oriented Programing– Information Systems Department 18 Lớp sở ảo  Xét trường hợp:      Theo nguyên lý kế thừa: C có hai thành phần x Vấn đề xảy ra:    Giả sử lớp A có thành phần x Trong lớp B có thành phần x Xây dựng lớp C kế thừa từ lớp A B Khi truy cập thành phần x C chương trình dịch khơng biết thành phần x lớp A hay B  Sự nhập nhằng kế thừa Để giải quyết: Ta xác định phạm vi tường minh  Ví dụ: D d; d.A::x; d.B::x;  Object Oriented Programing– Information Systems Department 19 Lớp sở ảo  Xét trường hợp hai:   Gọi A lớp sở lớp B C Gọi D lớp dẫn xuất lớp B C A x B C x x D x Object Oriented Programing– Information Systems Department 20 Lớp sở ảo  Giải quyết: Khai báo tường minh .::;  Coi A lớp sở ảo B C Khi D có thể A   Khai báo: class : virtual Khi ta khai báo class B: virtual public A{…} class C: virtual public A{…}  Object Oriented Programing– Information Systems Department 21 Bài tập (week 6) Bài 1: Cài đặt lớp PS1 gồm có:     Dữ liệu: tử số, mẫu số Phương thức: nhập ps(mẫu khác 0), in ps, tối giản, cộng ps Chương trình chính: nhập ps ab, in c=a+b Cài đặt lớp PS2 kế thừa PS1 bổ sung:     Dữ liệu: dấu phân số Phương thức: toán tử >>, =, , =,

Ngày đăng: 11/05/2021, 01:22

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w