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 3 GV dương khai phong

53 178 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 53
Dung lượng 8,27 MB

Nội dung

ĐH CÔNG NGHỆ THÔNG TIN http://sites.google.com/site/khaiphong Số tiết lý thuyết: 45 tiết Số tiết thực hành: 30 tiết http://sites.google.com/site/khaiphong  Nội dung môn học:  Chương 1: Tổng quan OOP  Chương 2: Lớp & đối tượng  Chương 3: Hàm hàm đa OOP  Chương 4: Đa hóa toán tử  Chương 5: Sự kế thừa tính đa hình http://sites.google.com/site/khaiphong  Chương 3: Hàm (phương thức: method) hàm đa OOP  Các hàm (phương thức) truy vấn  Hàm khởi tạo chép (copy constructor)  Hàm với đối số ngầm định  Hàm tĩnh liệu tĩnh (static)  Hàm bạn – lớp bạn (friend)  Hàm đa (đa hóa hàm:overload)  Hàm chuyển đổi kiểu  Hàm chỗ (inline)  Chương 3: Hàm hàm đa OOP  Các hàm (phương thức) truy vấn Khái niệm  Ví dụ  Phân loại  Đặc điểm  http://sites.google.com/site/khaiphong  Khái niệm: Là phương thức dùng để hỏi/gán giá trị cho thành viên liệu đối tượng  Ví dụ: class Phanso{ private: int tuso,mauso; public: Phanso(); // Hàm khởi tạo không đối số Phanso(int,int); // Hàm khởi tạo hai đối số // Phương thức truy vấn int getTuso(){return tuso;} int getMauso(){return mauso;} void setTuso(int tu){tuso=tu;} void setMauso(int mau){mauso=mau;} };  Chương 3: Hàm hàm đa OOP  Các hàm (phương thức) truy vấn Khái niệm  Ví dụ  Phân loại  Đặc điểm  http://sites.google.com/site/khaiphong  Phân loại:  Truy vấn đơn giản (“giá trị x bao nhiêu?”)  Truy vấn điều kiện (“thành viên x có lớn 10 không?”)  Truy vấn dẫn xuất (“tổng giá trị thành viên x y bao nhiêu?”)  Đặc điểm:  Phương thức dùng để bảo vệ nguyên tắc đóng gói, đảm bảo việc đọc/ghi kiểm tra giá trị cho thành viên liệu lớp  Phương thức thường quy ước đặt tên theo dạng tiền tố (get/set/is ứng với loại truy vấn),tiếp theo tên thành viên liệu http://sites.google.com/site/khaiphong  Chương 3: Hàm (phương thức: method) hàm đa OOP  Các hàm (phương thức) truy vấn  Hàm khởi tạo chép (copy constructor)  Hàm với đối số ngầm định  Hàm tĩnh liệu tĩnh (static)  Hàm bạn – lớp bạn (friend)  Hàm đa (đa hóa hàm:overload)  Hàm chuyển đổi kiểu  Hàm chỗ (inline)  Chương 3: Hàm hàm đa OOP  Hàm http://sites.google.com/site/khaiphong khởi tạo chép (copy constructor) Khái niệm  Khái niệm: Là hàm khởi tạo có đối số đối  Ví dụ tượng khác lớp  Cú pháp  Ví dụ:  Trường hợp sử dụng  void main(){ Phanso a; // khởi tạo không đối số Phanso b(2,3); // Hàm khởi tạo hai đối số Phanso c(b); // Hàm khởi tạo chép };  Cú pháp: class X{ … public: X(); // Hàm khởi tạo không đối số X(const X&); // Hàm khởi tạo chép };  Chương 3: Hàm hàm đa OOP  Hàm http://sites.google.com/site/khaiphong khởi tạo chép (copy constructor) Khái niệm  Trường hợp sử dụng:  Khi đối tượng khởi tạo từ  Ví dụ đối tượng khác lớp  Cú pháp  Khi đối tượng truyền  Trường hợp sử dụng đối số cho hàm  Khi hàm trả đối tượng  Khi có cấp phát động hàm khởi tạo chép bắt buộc phải định nghĩa lại để tránh trường hợp trỏ NULL (null pointer assignment)   Chương 3: Hàm hàm đa OOP http://sites.google.com/site/khaiphong  Khi cấp phát động:  Hàm khởi tạo chép (copy constructor) b c  Khái niệm dụng: Tuso:3  Trường hợp sử Tuso:3 Mauso:5 Mauso:5  Khi đối tượng khởi tạo từ  Ví dụ đối tượng khác lớp  Cú pháp  Khi đối tượng khởi tạo từ đối tượng khác lớp chương  Khi đối tượng truyền trình tự tạo hàm khởi tạo saolàchép việc chép thực  Trường hợp sử dụng mộtmặc đốiđịnh số cho hàm Khi trả vềnguồn sang đối tượng cách chép byte từ hàm đối tượng đối tượng đích  Khi có cấp phát động hàm khởi (bc) phải định p chép bắt buộc s1tạo 0f003x  Khi có cấp phát động: nghĩa lại để tránh trường hợp “HELLO” Ví dụ: CString s1(“Hello”); trỏ NULL (null pointer assignment) s2 p CString s2(s1);  Khi đối tượng khởi tạo từ đối tượng khác lớp mà có cấp phát động hàm khởi tạo chép mặc định KHÔNG TẠO RA vùng nhớ cho đối tượng s2  đó, đối tượng s1 bị huỷ s2 trỏ vào vùng nhớ NULL Định nghĩa lại hàm khởi tạo chép Ví dụ mẫu  Chương 3: Hàm hàm đa OOP http://sites.google.com/site/khaiphong  KhiPhanso{ cấp phát động: class private: b c int tuso,mauso; Tuso:3 Tuso:3 public: Mauso:5 Mauso:5 Phanso(); // Hàm khởi tạo không đối số Phanso(int,int); Hàmtạokhởi tạo đối số  Khi đối tượng được// khởi từ đối2tượng khác lớp chương Phanso(const Phanso&); // Hàm khởi tạo chép }; trình tự tạo hàm khởi tạo chép mặc định việc chép thực // Định lớp:từng byte từ đối tượng nguồn sang đối tượng đích hiệnnghĩa bên cách chép Phanso::Phanso(const Phanso& p){ (bc) tuso=p.tuso; p s1 0f003x  mauso=p.mauso; Khi có cấp phát động: “HELLO” Ví dụ: CString s1(“Hello”); } s2 p void main(){ CString s2(s1);  Khi đối khởi tạo tạo từ đối tượng khác lớp mà có cấp phát Phanso a;tượng // gọiđược hàm khởi Phanso() Phanso gọisao hàm tạo Phanso(int,int) động b(3,5); hàm khởi// tạo chépkhởi mặc định KHÔNG TẠO RA vùng nhớ cho Phanso c(b); // gọi hàm khởi tạo Phanso(const Phanso&); đối tượng s2  đó, đối tượng s1 bị huỷ s2 trỏ vào vùng nhớ NULL } Định nghĩa lại hàm khởi tạo chép Phân số 10 ĐH CÔNG NGHỆ THÔNG TIN http://sites.google.com/site/khaiphong 39 ĐH CÔNG NGHỆ THÔNG TIN http://sites.google.com/site/khaiphong 40  Bài tập trắc nghiệm http://sites.google.com/site/khaiphong Câu 1: class A bạn (friend class) class B, class B bạn class C A B C D class C truy xuất thành viên private class A class B truy xuất thành viên private class C class B truy xuất thành viên private class A class A truy xuất thành viên private class C 41  Bài tập trắc nghiệm http://sites.google.com/site/khaiphong Câu 2: Cho biết kết đoạn chương trình sau: class UIT{ int nabc; public: UIT(int x=0){ nabc=x;} ~UIT(){cout[...]... kiểu  Hàm tại chỗ (inline) 15  Chương 3: Hàm và hàm đa năng trong OOP  Hàm http://sites.google.com/site/khaiphong tĩnh và dữ liệu tĩnh (static) Khái niệm  Khái niệm: Dữ liệu tĩnh: là dữ liệu dùng chung cho  Ví dụ mọi thể hiện của lớp (hữu ích trong việc  Trường hợp sử dụng chia sẻ thông tin chung giữa các đối tượng) , tồn tại trong suốt quá trình chạy của chương trình Hàm tĩnh: là hàm dùng để truy... các thành viên dữ liệu tĩnh của lớp Hàm này không thuộc về một đối tượng nào của lớp Hàm được gọi ngay cả khi không có đối tượng nào được tạo bằng cách sử dụng toán tử phạm vi “::”  Cú pháp khai báo chung: dùng từ khoá static trước kiểu dữ liệu hay hàm  16  Chương 3: Hàm và hàm đa năng trong OOP  Hàm http://sites.google.com/site/khaiphong tĩnh và dữ liệu tĩnh (static) Khái niệm  Ví dụ: Dữ liệu... ngược lại hoặc giữa các đối tượng của các lớp khác nhau (do bộ biên dịch không thể tự động chuyển đổi được các kiểu do người dùng định nghĩa) Ví dụ: - Chuyển đổi từ lớp PHANSO thành một số nguyên - Chuyển đổi đối tượng từ mét sang đơn vị tính centimet - … 30  Chương 3: Hàm và hàm đa năng trong OOP  Hàm chuyển đổi kiểu Khái niệm  Phân loại  Ví dụ  http://sites.google.com/site/khaiphong  Phân loại:... m){met=m;} operator int(){ return int(met*100);} // hàm chuyển đổi kiểu }; void main(){ donvi_met m(2); int cm; cm=m; // gọi hàm operator int() } 33  Chương 3: Hàm và hàm đa năng trong OOP http://sites.google.com/site/khaiphong  Trường hợp 3: Đổi kiểu giữa các đối tượng: class dv_met{ private:  Khái niệm float met; public:  Phân loại dv_met(float m){met=m;}  };Ví dụ m: lớp nguồn class dv_ centimet{... 5 13  Chương 3: Hàm và hàm đa năng trong OOP  Hàm http://sites.google.com/site/khaiphong với đối số ngầm định  Đặc điểm: Khái niệm  Ví dụ  Đặc điểm   class PS{ int tu,mau; public: PS(int t=0,int m=1); }; PS::PS(int t=5,int m=1){ tu=t;mau=m; }  class PS{ int tu,mau; public: PS(int t=0,int m=1); }; PS::PS(int t,int m){ tu=t;mau=m; }  Nếu một đối số được gán giá trị ngầm định thì tất cả các đối. .. met=float(cm)/100; Khai báo và định nghĩa một hàm chuyển đổi } như là một hàm thành viên của lớp: operator };  Chuyển đổi kiểu giữa các đối tượng: void main(){ Cần nắm rõ lớp nguồn và lớp đích trong việc donvi_met m; chuyển đổi mà ta cài đặt hàm khởi tạo chuyển int cm=100; đổi hay hàm chuyển đổi m=cm; // gọi hàm donvi_met(int cm) } 32  Chương 3: Hàm và hàm đa năng trong OOP http://sites.google.com/site/khaiphong... trong khai báo Ví dụ: int divide(int a,int b=2.5) // error int divide(int a,int b=2) // ok  Giá trị ngầm định chỉ khai báo một lần trong khai báo hàm hoặc trong định nghĩa hàm nhưng không thể trong cả hai Ví dụ: 14 http://sites.google.com/site/khaiphong  Chương 3: Hàm (phương thức: method) và hàm đa năng trong OOP  Các hàm (phương thức) truy vấn  Hàm khởi tạo sao chép (copy constructor)  Hàm với đối. .. m(2); dv_centimet cm(150); cm=m; m=cm; } Lớp đích: cài đặt hàm khởi tạo chuyển đổi kiểu Hoặc Lớp nguồn: cài đặt hàm chuyển đổi kiểu operator 34  Chương 3: Hàm và hàm đa năng trong OOP http://sites.google.com/site/khaiphong  Trường hợp 3: Đổi kiểu giữa các đối tượng: m: lớp nguồn cm: lớp đích Cài đặt cho lớp dv_met:: - Hàm khởi tạo chuyển đổi kiểu (giải quyết trường hợp: m=cm) - Hàm chuyển đổi kiểu... http://sites.google.com/site/khaiphong  Ví dụ: các kiểu hàm đa năng class Alpha{ private: int data; public: int Display(int); int Display(char); // Đa năng với các kiểu dữ liệu khác nhau void Display(char,int); // Đa năng với số lượng đối số khác nhau float Display(int); // Error: đây không phài là hàm đa năng vì đã tồn tại hàm Display(int) … }; 28 http://sites.google.com/site/khaiphong  Chương 3: Hàm (phương... (copy constructor)  Hàm với đối số ngầm định  Hàm tĩnh và dữ liệu tĩnh (static)  Hàm bạn – lớp bạn (friend)  Hàm đa năng (đa năng hóa hàm:overload)  Hàm chuyển đổi kiểu  Hàm tại chỗ (inline) 29  Chương 3: Hàm và hàm đa năng trong OOP  Hàm chuyển đổi kiểu Khái niệm  Phân loại  Ví dụ  http://sites.google.com/site/khaiphong  Khái niệm: Là hàm dùng để chuyển đổi các đối tượng thành các kiểu dữ liệu ... Tuso :3 Mauso:5 Mauso:5  Khi đối tượng khởi tạo từ  Ví dụ đối tượng khác lớp  Cú pháp  Khi đối tượng khởi tạo từ đối tượng khác lớp chương  Khi đối tượng truyền trình tự tạo hàm khởi tạo saolàchép...http://sites.google.com/site/khaiphong  Nội dung môn học:  Chương 1: Tổng quan OOP  Chương 2: Lớp & đối tượng  Chương 3: Hàm hàm đa OOP  Chương 4: Đa hóa toán tử  Chương 5: Sự kế thừa tính... Phanso&); đối tượng s2  đó, đối tượng s1 bị huỷ s2 trỏ vào vùng nhớ NULL } Định nghĩa lại hàm khởi tạo chép Phân số 10  Chương 3: Hàm hàm đa OOP http://sites.google.com/site/khaiphong p 0f003x class

Ngày đăng: 04/12/2015, 02:50

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN