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

Bài giảng Cơ bản về hướng đối tượng và C++

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PPT | Số trang:65

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

Bài giảng Cơ bản về hướng đối tượng và C++ sau đây sẽ giúp cho các bạn hiểu rõ hơn về khái niệm hướng đối tượng; các đặc điểm quan trọng của OO; đóng gói – che dấu thông tin; đối tượng; lớp đối tượng - class; thiết kế hướng đối tượng; khai báo các constructor;... Mời các bạn tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ bản về hướng đối tượng và C++

  1. Cơ bản về hướng đối tượng và C++
  2. Tài liệu tham khảo • Bài giảng LTHĐT, Trần Minh Châu, Đại học Công nghệ, ĐH Quốc gia HN • Bài giảng LTHĐT, Nguyễn Ngọc Long, ĐH KHTN TPHCM • Bài giảng LTHĐT, Huỳnh Lê Tấn Tài, ĐH KHTN TPHCM • Bài giảng LTHĐT, Phạm Thi Vương, ĐH CNTT TPHCM • C++ How to Program, Dietel
  3. Const • Nên khai báo hằng đối với: – Các đối tượng mà ta không định sửa đổi – const double PI = 3.14; – const Date openDate(18,8,2003); – Các tham số của hàm mà ta không định cho hàm đó sửa đổi – void printHeight(const LargeObj &LO) { cout
  4. Hướng đối tượng là gì? • Hiện giờ, đã có sự thống nhất rằng hướng đối tượng là: – lớp - class – thừa kế - inheritance và liên kết động - dynamic binding
  5. Các đặc điểm quan trọng của OO • Các lớp đối tượng - Classes • Đóng gói – Encapsulation • Thừa kế - Inheritance • Đa hình - Polymorphism
  6. Đóng gói – Che dấu thông tin • Đóng gói: Nhóm những gì có liên quan với nhau vào làm một, để sau này có thể dùng một cái tên để gọi đến – Các hàm/ thủ tục đóng gói các câu lệnh – Các đối tượng đóng gói dữ liệu của chúng và các thủ tục có liên quan • Che dấu thông tin: đóng gói để che một số thông tin và chi tiết cài đặt nội bộ để bên ngoài không nhìn thấy – mục tiêu là để khách hàng của ta (thường là các lập trình viên khác) coi các đối tượng của ta là các hộp đen
  7. Đối tượng • Lưu giữ trạng thái: mỗi đối tượng có trạng thái (dữ liệu của nó) và các thao tác • Định danh: Mỗi đối tượng bất kể đang ở trạng thái nào đều có định danh và được đối xử như một thực thể riêng biệt. • Thông điệp: là phương tiện để một đối tượng A chuyển tới đối tượng B yêu cầu B thực hiện một trong số các thao tác của B.
  8. Lớp đối tượng - class • Lớp: là khuôn mẫu để tạo các đối tượng (tạo các thể hiện). Mỗi đối tượng có cấu trúc và hành vi giống như lớp đối tượng mà nó được tạo từ đó. • Lớp là cái ta thiết kế và lập trình • Đối tượng là cái ta tạo (từ một lớp) tại thời gian chạy.
  9. Thừa kế • là cơ chế cho phép một lớp D có được các thuộc tính và thao tác của lớp C, như thể các thuộc tính và thao tác đó đã được định nghĩa lại lớp D. • cho phép các phần mềm sử dụng quan hệ “là” • giúp ta thiết kế các dịch vụ tổng quát rồi chuyên môn hóa chúng
  10. Đa hình • Đa hình hàm - Functional polymorphism • Đa hình đối tượng - Object polymorphism
  11. Thiết kế hướng đối tượng • Lập trình hướng đối tượng là quy trình tạo một chương trình dựa theo một thiết kế hướng đối tượng • Thiết kế hướng đối tượng là quy trình thiết kế một hệ thống sử dụng các nguyên lý thiết kế hướng đối tượng • C++ được coi là một ngôn ngữ hướng đối tượng vì nó cung cấp các tiện ích đặc biệt cho việc tổ chức chương trình và dữ liệu theo mô hình hướng đối tượng
  12. Trừu tượng hóa cách nhìn đơn giản hóa về một đối tượng mà trong đó chỉ bao gồm các đặc điểm được quan tâm và bỏ qua những chi tiết không cần thiết.
  13. Các hành vi của đối tượng • Constructor • Query (truy vấn) • Update (cập nhật) • Destructor
  14. Constructor • Constructor là một loại phương thức đặc biệt dùng để khởi tạo thể hiện của lớp • Bất kể loại cấp phát bộ nhớ nào được sử dụng (tự động, tĩnh,động), mỗi khi một thể hiện của lớp được tạo, một hàm constructor nào đó của lớp sẽ được gọi
  15. Constructor • Constructor không có giá trị trả về (kể cả void) • Constructor có thể được khai báo chồng như các hàm C++ thông thường khác
  16. Constructor mặc định • Constructor mặc định (default constructor) là constructor được gọi khi thể hiện được khai báo mà không có đối số nào được cung cấp • MyClass x; • MyClass* p = new MyClass; • Ngược lại, nếu tham số được cung cấp tại khai báo thể hiện, trình biên dịch sẽ gọi phương thức constructor khác (overload) • MyClass x(5); •
  17. Khai báo các constructor • Constructor luôn có tên trùng với tên lớp • Do không trả về giá trị, ta khai báo constructor như các phương thức khác nhưng bỏ qua kiểu giá trị trả về, cũng có thể cung cấp đối số mặc định. class Foo { public: Foo(int x=5); Foo(string s); … };
  18. Constructor • Đối với constructor mặc định, nếu ta không cung cấp một phương thức constructor nào, C++ sẽ tự sinh constructor mặc định là một phương thức rỗng • Tuy nhiên, nếu ta không định nghĩa constructor mặc định nhưng lại có các constructor khác, trình biên dịch sẽ báo lỗi không tìm thấy constructor mặc định nếu ta không cung cấp tham số khi tạo thể hiện.
  19. Copy constructor
  20. Destructor • Cũng như một phương thức constructor được gọi khi một đối tượng được tạo, loại phương thức thứ hai, destructor, được gọi ngay trước khi thu hồi một đối tượng • Destructor thường được dùng để thực hiện mọi việc dọn dẹp cần thiết trước khi một đối tượng bị huỷ • Destructor không có giá trị trả về, và không thể định nghĩa lại (nó không bao giờ có tham số) • Phương thức destructor trùng tên với tên lớp nhưng có dấu ~ đặt trước
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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