1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình hướng đối tượng C: Chương 3 - ThS. Trần Anh Dũng

62 3 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

Bài giảng Lập trình hướng đối tượng C - Chương 3 lớp và đối tượng. Chương này trình bày những nội dung chính sau: Cú pháp khai báo lớp, định nghĩa hàm thành phần của lớp, khai báo và tạo lập đối tượng, phạm vi truy xuất, phương thức thiết lập – Constructor, phương thức hủy bỏ – Destructor, phương thức truy vấn - cập nhật, thành viên tĩnh – static member. Mời tham khảo.

CHƯƠNG LỚP VÀ ĐỐI TƯỢNG ThS Trần Anh Dũng Nội dung Cú pháp khai báo lớp Định nghĩa hàm thành phần lớp Khai báo tạo lập đối tượng Phạm vi truy xuất Phương thức thiết lập – Constructor Phương thức hủy bỏ – Destructor Phương thức Truy vấn, Cập nhật Thành viên tĩnh – static member 14/09/2014 Lập trình hướng đối tượng Lớp C++ Một lớp bao gồm thành phần liệu (thuộc tính) phương thức (hàm thành phần) Lớp C++ thực chất kiểu liệu người sử dụng định nghĩa Trong C++, dùng từ khóa class để điểm bắt đầu lớp cài đặt 14/09/2014 Lập trình hướng đối tượng Lớp đối tượng Lớp mơ tả trừu tượng nhóm đối tượng chất, ngược lại đối tượng thể cụ thể cho mơ tả trừu tượng 14/09/2014 Lập trình hướng đối tượng Cú pháp khai báo lớp class { //Thành phần liệu //Thành phần xử lý }; 14/09/2014 Lập trình hướng đối tượng Cú pháp khai báo lớp class { private: protected: public: }; 14/09/2014 Lập trình hướng đối tượng Cú pháp khai báo lớp Header class class_name { Access_Control_label: members; (data & code) Access_Control_label : members; (data & code) class Rectangle { private: int width; int length; public: void set(int w, int l); int area(); }; }; 14/09/2014 Lập trình hướng đối tượng Các thành phần lớp Thuộc tính: Các thuộc tính khai báo giống khai báo biến C Phương thức: Các phương thức khai báo giống khai báo hàm C Có hai cách định nghĩa thi hành phương thức Định nghĩa thi hành lớp Định nghĩa thi hành lớp 14/09/2014 Lập trình hướng đối tượng Cơ chế tạo lập lớp Xác định thuộc tính (dữ liệu)  Những mà ta biết đối tượng – giống struct Xác định phương thức (hình vi)  Những mà đối tượng làm Xác định quyền truy xuất 14/09/2014 Lập trình hướng đối tượng Định nghĩa hàm thành phần Cú pháp định nghĩa hàm thành phần bên khai báo lớp: :: () { } Ví dụ: void point::display() { //…… } 14/09/2014 Lập trình hướng đối tượng 10 Truy vấn Cập nhật Nếu phương thức get/set có nhiệm vụ cho ta đọc/ghi giá trị cho thành viên liệu Quy định thành viên private để ích lợi gì?  Ngồi việc bảo vệ ngun tắc đóng gói, ta cần kiểm tra xem giá trị cho thành viên liệu có hợp lệ hay khơng  Sử dụng phương thức truy vấn cho phép ta thực việc kiểm tra trước thực thay đổi giá trị thành viên  Chỉ cho phép liệu truy vấn hay thay đổi truy cập đến 14/09/2014 Lập trình hướng đối tượng 48 Ví dụ int Student::setGPA (double newGPA){ if ((newGPA >= 0.0) && (newGPA gpa = newGPA; return 0; // Return to indicate success } else { return -1; // Return -1 to indicate failure } } 14/09/2014 Lập trình hướng đối tượng 49 Thành viên tĩnh – static member Trong C, static xuất trước liệu khai báo hàm giá trị liệu lưu lại biến toàn cục Trong C++, static xuất trước liệu phương thức lớp giá trị lưu lại có ý nghĩa cho đối tượng khác lớp Các thành viên static public, private protected 14/09/2014 Lập trình hướng đối tượng 50 Thành viên tĩnh – static member Đối với class, static dùng để khai báo thành viên liệu dùng chung cho thể lớp:  Một tồn suốt trình chạy chương trình  Dùng chung cho tất thể lớp  Bất kể lớp 14/09/2014 Lập trình hướng đối tượng 51 Ví dụ class Rectangle { private: int width; int length; static int count; public: void set(int w, int l); int area(); } 14/09/2014 Rectangle r1; Rectangle r2; Rectangle r3; count r1 r2 width length width length Lập trình hướng đối tượng r3 width length 52 Ví dụ Đếm số đối tượng MyClass: class MyClass{ public: MyClass(); ~MyClass(); void printCount(); private: static int count; }; 14/09/2014 Lập trình hướng đối tượng 53 Ví dụ int MyClass::count = 0; MyClass::MyClass(){ this  count++; } MyClass::~MyClass(){ this  count ; } void MyClass::printCount(){ cout

Ngày đăng: 11/05/2021, 02:23

Xem thêm: