intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình hướng đối tượng: Chương 3 - Trần Minh Thái

Chia sẻ: Năm Tháng Tĩnh Lặng | Ngày: | Loại File: PPTX | Số trang:76

53
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong chương 3 của bài giảng Lập trình hướng đối tượng, người học sẽ tìm hiểu những nội dung sau đây: Khái niệm lớp và đối tượng, toán tử gán, phương thức thiết lập (constructor), phương thức huỷ (destructor), con trỏ this, lớp template. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 3 - Trần Minh Thái

  1. 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 #2 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) #3 • 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) #4 • 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) #5 • Cú pháp class class_name { : 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) #6 • 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: Thuộc tính int hour, minute, second; public: void SetTime(int h, int m, int s); Phương void Print(); thức };
  7. Khai báo lớp: thuộc tính (1/5) #7 • 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) #8 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) #9 • 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) #10 • Cú pháp type_name class_name :: method_name ( parameter_list ) { … } • Hàm inline thêm từ khóa inline
  11. Khai báo lớp: cài đặt phương thức (5/5) #11 class  CMyTime { private: int hour, minute, second; public: void SetTime(int h, int m, int s); void Print() { cout
  12. Thuộc tính truy xuất thành viên (1/3) (member access 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
  13. 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ừ bên ngoài lớp
  14. Thuộc tính truy xuất thành viên (3/3) #14 class  CMyClass  { !!! Các phương thức tiện private: ích chỉ được dùng bởi int x; các phương thức khác public: trong cùng lớp nên được khai báo private int y; void Print()  {  cout 
  15. Sử dụng lớp đối tượng (1/4) #15 • Tạo đối tượng Sử dụng lớp giống như dùng struct, khai báo một biến lớp (tạo đối tượng) như khai báo 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ử dụng lớp đối tượng (2/4) #16 Gọi hàm thành viên của lớp CMyTime t1;  truyền thông điệp cho hàm thành viên đó CMyTime &t2=t1; CMyTime *t3 = &t1; t1.SetTime(12, 5, 5); t2.Print(); t3­>SetTime(1, 5, 7); t3­>Print();
  17. Sử dụng lớp đối tượng (3/4) #17 • 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 duy nhất các định nghĩa hàm (phương thức)
  18. Sử dụng đối tượng (4/4) #18 CMyTime t1, t2; t1.SetTime(12, 5, 5); t2.SetTime(11,15,  15); t1.Print(); SetTime() t2.Print(); Print() hour=12 hour=11 minute=5 minute=15 second=5 second=15 Đối tượng t1 Đối tượng t2
  19. Toán tử gán (1/2) #19 • Dùng để gán một đối tượng cho một đối tượng khác của cùng một lớp CMyTime t1; • Nó được thực hiện bởi toán tử sao chép thành viên t1.SetTime(12, 5, 5); (memberwise copy) t1.Print(); CMyTime t2; t2 = t1; //memberwise copy t2.Print();
  20. Toán tử gán (2/2) #20 • Mỗi thành viên của một đối tượng này được sao chép riêng rẽ đến cùng một thành viên 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ỏ
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2