Lập trình hướng đối tượng-Tính đa hình docx

9 242 0
Lập trình hướng đối tượng-Tính đa hình docx

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

Thông tin tài liệu

2/11/2012 9:53 AM 2/11/2012 9:53 AM L L ậ ậ p tr p tr ì ì nh hư nh hư ớ ớ ng đ ng đ ố ố i tư i tư ợ ợ ng ng Hà Văn Sang Khoa HTTT, Academy Of Finance, Hanoi Hà Văn Sang Bộ môn: Tin học TC – KT Khoa: Hệ Thống Thông Tin Kinh tế - Học Viện Tài Chính Tel: 0982.165.568 Email: sanghv@hvtc.edu.vn Website: http://www.hvtc.edu.vn/sanghv Lập trình hướng đối tượng Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. 2/11/2012 9:53 AM 2/11/2012 9:53 AM L L ậ ậ p tr p tr ì ì nh hư nh hư ớ ớ ng đ ng đ ố ố i tư i tư ợ ợ ng ng Hà Văn Sang Khoa HTTT, Academy Of Finance, Hanoi CHƯƠNG V Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 3 1. Kh 1. Kh á á i ni i ni ệ ệ m m Kết gán sớm và kết gán muộn Khi đối tượng nhận một thông báo thực hiện một phương thức, hệ thống sẽ:  Kiểm tra cú pháp của thông báo Gắn thông báo đó với 1 định nghĩa hàm cụ thể Việc kết gán có thể xảy ra ở hai thời điểm: •Lúc biên dịch chương trình  Kết gán sớm •Lúc chạy chương trình  Kết gán muộn Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 4 2. 2. Phương th Phương th ứ ứ c c ả ả o o  Định nghĩa:  Hàm ảo là hàm thành phần của lớp  Được khai báo trong lớp cơ sở và định nghĩa lại trong lớp dẫn xuất  Cú pháp virtual <kiểu trả về> <tên hàm>([tsố])  Một số chú ý:  Định nghĩa các phương thức áo như các phương thức thông thường  Sử dụng con trỏ để truy cập tới hàm ảo  Định nghĩa trong lớp cơ sở ngay cả khi nó không được sử dụng  Không có hàm khởi tạo ảo nhưng có thể có hàm huỷ ảo  Con trỏ của lớp cơ sở có thể chứa địa chỉ của đối tượng lớp dẫn xuất Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 5 2. 2. Phương th Phương th ứ ứ c c ả ả o o  Cơ chế kết gán muộn:  Khi một lớp có phương thức ảo hoặc lớp cơ sở có phương thức áo  Chương trình dịch sẽ phát sinh thêm một con trỏ ảo (virtual pointer)  Con trỏ này trỏ tới một bảng ảo (Vtable)  Bảng ảo có chứa địa chỉ của các phương thức ảo  Quá trình phát sinh một đối tượng lớp dẫn xuất:  B1: xác định các thành phần ( ko ảo) kể cả cả các thành phần của lóp cơ sở  Bước 2: Xây dựng con trỏ ảo và bảng áo  Khi kết gán muộn, căn cứ vào con trỏ ảo để xác định phương thức trong bảng ảo và phương thức của lớp dẫn xuất Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 6 V V í í d d ụ ụ : :  Xây dựng lớp giáo viên và sinh viên kế thừa từ lớp người NGUOI { - ht,namsinh - nhap, in - loai(){returrn 0}; } SV:NGUOI { -lop,dtb -nhap, in -loai(){ return 1;} } GV:NGUOI { -hsl, dv -nhap,in -loai(){return 2;} } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 7 Ch Ch ú ú ý: ý:  Cơ chế kết gán phương thức ảo chỉ có thể thực hiện qua phép gán con trỏ hoặc tham chiếu NGUOI a,*p; GV b; a=b; a.nhap(); //kết gán sớm p=&b; pnhap(); //kết gán muộn NGUOI &q=b; qnhap(); //kết gán muộn void f(NGUOI x) { x.nhap(); //kết gán sớm} void f(NGUOI &x) { x.nhap(); //kết gán muộn } Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 8 3. 3. Phương th Phương th ứ ứ c c ả ả o thu o thu ầ ầ n tuý n tuý  Mục đích:  Tránh lãng phí bộ nhớ  Cung cấp một phương thức thống nhất làm giao diện chung.  Khai báo: virtual <kiểu trả về> <tên phương thức>([tsố])=0;  Đặc điểm:  Không bắt buộc định nghĩa trong lớp cơ sở  Không thể khai báo đối tượng thuộc lớp có phương thức ảo thuần tuý  Lớp có phương thức ảo thuần tuý chỉ làm lớp cơ sở cho lớp khác và gọi là lớp cơ sở trừu tượng  Lớp dẫn xuất kế thừa lớp cơ sở trừu tượng mà không định nghĩa lại phương thức ảo thuần tuý  nó trở thành lớp cơ sở trừu tượng Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Object Oriented Programing– Information Systems Department 9 Qui c Qui c á á ch n ch n ộ ộ p b p b à à i i Gửi tới địa chỉ: sanghv@gmail.com CC: sanghv@hvtc.edu.vn Tiêu đề: [Lớp][BT6][Stt][Họ và tên] Ví dụ: [K43/41.01][BT3][14][Lê hoàng Vũ] Hạn nộp: 23h59’ ngày 29/01/2008 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. . Chính Tel: 0982.165.568 Email: sanghv@hvtc.edu.vn Website: http://www.hvtc.edu.vn/sanghv Lập trình hướng đối tượng Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com. áo  Chương trình dịch sẽ phát sinh thêm một con trỏ ảo (virtual pointer)  Con trỏ này trỏ tới một bảng ảo (Vtable)  Bảng ảo có chứa địa chỉ của các phương thức ảo  Quá trình phát sinh một đối tượng. hàm cụ thể Việc kết gán có thể xảy ra ở hai thời điểm: •Lúc biên dịch chương trình  Kết gán sớm •Lúc chạy chương trình  Kết gán muộn Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com

Ngày đăng: 21/06/2014, 09:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan