Bài giảng lập trình hướng đối tượng dùng c + + chương 3 lớp và đối tượng

76 986 0
Bài giảng lập trình hướng đối tượng dùng c + + chương 3  lớp và đối tượng

Đ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

Chương 3 Lớp và đối tượng TRẦN MINH THÁI Email: minhthai@itc.edu.vn Website: www.minhthai.edu.vn Cập nhật: 08 tháng 02 năm 2015 #2 Nội dung 1. Khái niệm lớp và đối tượng 2. Toán tử gán 3. Phương thức thiết lập (constructor) 4. Phương thức huỷ (destructor) 5. Con trỏ this 6. Lớp template #3 Lớp đối tượng là gì? (1/2) Lớp là khái niệm trung tâm của OOP, là sự mở rộng của khái niệm cấu trúc (struct) Ngoài thành phần dữ liệu (như cấu trúc), lớp còn chứa các thành phần hàm, còn gọi là phương thức (method) hay hàm thành viên (member function) #4 Lớp đối tượng là gì? (2/2) Lớp được xem như một kiểu dữ liệu (kiểu đối tượng) Lớp giúp lập trình viên: • Trừu tượng hóa dữ liệu • Đóng gói • và ẩn thông tin #5 Khai báo lớp (1/2) Cú pháp class class_name { <thuộc tính truy xuất>: member_list }; Với member_list là đặc tả các thành viên Theo quy ước, tên lớp bắt đầu bởi ký tự C #6 Khai báo lớp (2/2) Thành viên của lớp gồm  Thành viên dữ liệu (data member) → thuộc tính  Hàm thành viên (member function) → phương thức class CTime //Lớp thời gian { private: int hour, minute, second; public: void SetTime(int h, int m, int s); void Print(); }; Thuộc nh Phương thức #7 Khai báo lớp: thuộc tính (1/5) Là dữ liệu khai báo trong lớp Cú pháp giống như khai báo biến Có thể là một đối tượng nhưng phải khác đối tượng của lớp đang định nghĩa (con trỏ hay tham chiếu: OK) Không thể vừa khai báo, vừa khởi tạo #8 Khai báo lớp: thuộc tính (2/5) class CTime //Lớp thời gian { private: int hour = 1; // Error int minute, second; public: void SetTime(int h, int m, int s); void Print(); }; #9 Khai báo lớp: phương thức (3/5) Hàm khai báo trong lớp (còn gọi là giao diện) Có thể truy cập các thành viên dữ liệu và hàm thành viên khác Cài đặt trong lớp  hàm inline #10 Khai báo lớp: phương thức (4/5) Cú pháp type_name class_name :: method_name ( parameter_list ) { … } Hàm inline → thêm từ khóa inline [...]... liệu từ đối tượng c sang đối tượng mới Nếu c n th c hiện c c  Định nghĩa lại constructor sao chép c ng vi c khởi tạo kh c Phương th c thiết lập sao chép (8/9) #28 class CMyTime { int hour, minute, second; public: CMyTime() CMyTime(int h, int m, int s); CMyTime t1(1,20 ,30 ); CMyTime(CMyTime & t); //Copy constructor CMyTime t2(t1); //Copy constructor … CMyTime t3 = t1;//Copy constructor }; CMyTime::CMyTime(CMyTime... tương ứng c a đối tượng kh c Chú ý đối với c c thành viên dữ liệu chứa vùng nhớ c p phát động ho c con trỏ Phương th c thiết lập (Constructor) (1/9) #21 Khởi tạo c c thành viên dữ liệu khi đối tượng đư c tạo ra Constructor đư c gọi tự động mỗi khi một instance c a lớp đư c tạo Constructor thường đư c dùng để khởi tạo giá trị ban đầu ho c cấp phát động cho c c thành viên dữ liệu Phương th c thiết lập (2/9)... #26 class CMyTime class CMyTime { { private: private: int hour, minute, second; int hour, minute, second; public: public: CMyTime(); … }; CMyTime(int h=0, int m=0, int s=0); … }; Phương th c thiết lập sao chép (7/9) (Copy Constructor) #27 Tạo ra 01 đối tượng mới giống với 01 đối tượng đã c C 01 tham số là một tham chiếu đến 01 đối tượng c a c ng lớp C+ + cung c p sẵn constructor sao chép: sao chép từng... specifier) #12 X c định phạm vi c a c c thành viên c a lớp c thể đư c sử dụng tr c tiếp từ bên ngoài phạm vi lớp hay không C c thu c tính: private, protected, public Thu c tính truy xuất thành viên (2 /3) # 13 private (m c định) Chỉ đư c truy xuất từ bên trong lớp protected Chỉ đư c truy xuất từ bên trong lớp ho c lớp dẫn xuất c a nó public (m c định đối với thành viên c a struct) C thể đư c truy xuất từ... ngoài lớp Thu c tính truy xuất thành viên (3/ 3) #14 !!! C c phương th c tiện ích chỉ đư c dùng bởi c c phương th c kh c trong c ng lớp nên đư c khai báo private class CMyClass { private: int x; public: int y; void Print() { cout . 7); t3->Print(); #17 Sử dụng lớp đối tượng (3/ 4) Mỗi đối tượng sẽ c một tập c c dữ liệu riêng (thu c tính) đư c định nghĩa trong lớp Tuy nhiên, tập c c đối tượng thu c cùng một lớp chỉ c chung. (m c định đối với thành viên c a struct) C thể đư c truy xuất từ bên ngoài lớp #14 Thu c tính truy xuất thành viên (3/ 3) !!! C c phương th c tiện ích chỉ đư c dùng bởi c c phương th c kh c. biến struct Khai báo con trỏ, tham chiếu tới lớp  C thể khai báo con trỏ/ tham chiếu đến một đối tượng thu c cùng lớp (truy c p gián tiếp)  Con trỏ/ tham chiếu không là instance c a lớp #16 Sử

Ngày đăng: 04/09/2015, 15:28

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội dung

  • Lớp đối tượng là gì? (1/2)

  • Lớp đối tượng là gì? (2/2)

  • Khai báo lớp (1/2)

  • Khai báo lớp (2/2)

  • Khai báo lớp: thuộc tính (1/5)

  • Khai báo lớp: thuộc tính (2/5)

  • Khai báo lớp: phương thức (3/5)

  • Khai báo lớp: phương thức (4/5)

  • Khai báo lớp: cài đặt phương thức (5/5)

  • Thuộc tính truy xuất thành viên (1/3) (member access specifier)

  • Thuộc tính truy xuất thành viên (2/3)

  • Thuộc tính truy xuất thành viên (3/3)

  • Sử dụng lớp đối tượng (1/4)

  • Sử dụng lớp đối tượng (2/4)

  • Sử dụng lớp đối tượng (3/4)

  • Sử dụng đối tượng (4/4)

  • Toán tử gán (1/2)

  • Toán tử gán (2/2)

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

Tài liệu liên quan