-
Thông tin
-
Quiz
Chương 3: Lớp và đối tượng | Bài giảng Lập trình hướng đối tượng
Một lớp bao gồm các thành phần dữ liệu (thuộc tính) và các phương thức (hàm thành phần).Lớp trong C++ thực chất là một kiểu dữ liệu do người sử dụng định nghĩa. Bài giảng gtiúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao.
Lập trình hướng đối tượng (OOP) 18 tài liệu
Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh 452 tài liệu
Chương 3: Lớp và đối tượng | Bài giảng Lập trình hướng đối tượng
Một lớp bao gồm các thành phần dữ liệu (thuộc tính) và các phương thức (hàm thành phần).Lớp trong C++ thực chất là một kiểu dữ liệu do người sử dụng định nghĩa. Bài giảng gtiúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao.
Môn: Lập trình hướng đối tượng (OOP) 18 tài liệu
Trường: Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh 452 tài liệu
Thông tin:
Tác giả:
Tài liệu khác của Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
Preview text:
LỚP VÀ ĐỐI TƯỢNG
Khoa Công nghệ phần mềm Nội dung vCú pháp khai báo lớp
vĐịnh nghĩa hàm thành phần của lớp
vKhai báo và tạo lập đối tượng vPhạm vi truy xuất
vPhương thức thiết lập – Constructor
vPhương thức hủy bỏ – Destructor
vPhương thức Truy vấn, Cập nhật
vThành viên tĩnh – static member 20/09/2020
Lập trình hướng đối tượng 2 Lớp trong C++
vMột lớp bao gồm các thành phần dữ liệu (thuộc
tính) và các phương thức (hàm thành phần).
vLớp trong C++ thực chất là một kiểu dữ liệu do
người sử dụng định nghĩa.
vTrong C++, dùng từ khóa class để chỉ điểm bắt
đầu của một lớp sẽ được cài đặt. 20/09/2020
Lập trình hướng đối tượng 3 Lớp đối tượng
vLớp là một mô tả trừu tượng của nhóm các đối
tượng cùng bản chất, ngược lại mỗi một đối
tượng là một thể hiện cụ thể cho những mô tả trừu tượng đó. 20/09/2020
Lập trình hướng đối tượng 4
Cú pháp khai báo lớp class { //Thành phần dữ liệu //Thành phần xử lý }; 20/09/2020
Lập trình hướng đối tượng 5
Cú pháp khai báo lớp class { private: protected:
có thể truy cập từ lớp dẫn xuất > public: }; 20/09/2020
Lập trình hướng đối tượng 6
Cú pháp khai báo lớp Header class Rectangle class class_name { { private: Access_Control_label: int width; int length; members; public: (data & code) void set(int w, int l); Access_Control_label : int area(); members; }; (data & code) }; 20/09/2020
Lập trình hướng đối tượng 7
Các thành phần của lớp
vThuộc tính: Các thuộc tính được khai báo
giống như khai báo biến trong C
vPhương thức: Các phương thức được khai
báo giống như khai báo hàm trong C. Có
hai cách định nghĩa thi hành của một phương thức
vĐịnh nghĩa thi hành trong lớp
vĐịnh nghĩa thi hành ngoài lớp 20/09/2020
Lập trình hướng đối tượng 8
Cơ chế tạo lập các lớp
vXác định các thuộc tính (dữ liệu)
§ Những gì mà ta biết về đối tượng – giống như một struct
vXác định các phương thức (hành vi)
§ Những gì mà đối tượng có thể làm
vXác định các quyền truy xuất 20/09/2020
Lập trình hướng đối tượng 9
Định nghĩa hàm thành phần
vCú pháp định nghĩa các hàm thành phần ở bên ngoài khai báo lớp: :: (sách tham số>) { } Ví dụ: void point::display() { //…….. } 20/09/2020
Lập trình hướng đối tượng 10
Định nghĩa hàm thành phần class Rectangle{ private: int width, length; public: class name void set (int w, int l);
int area() { return width*length; } member function name };
void Rectangle :: set (int w, int l) { inline width = w; length = l; scope operator } 20/09/2020
Lập trình hướng đối tượng 11 Ví dụ lớp Time class Time { public:
void Set (int hours , int minutes , int seconds); void Increment ( ); void Write ( ) const;
Time (int initHrs, int initMins, int initSecs ); //constructor Time ( );
//default constructor private: int hrs; int mins; int secs; } ; 20/09/2020
Lập trình hướng đối tượng 12 Ví dụ lớp Time Time class Set Private data: Increment hrs Write mins Time secs Time 20/09/2020
Lập trình hướng đối tượng 13
Khai báo và tạo lập đối tượng
vKhai báo và tạo đối tượng: ;
vGọi hàm thành phần của lớp
. (sách các tham số nếu có>); à (); 20/09/2020
Lập trình hướng đối tượng 14
Khai báo và tạo lập đối tượng class Rectangle
r1 is statically allocated { void main() private: { Rectangle r1; int width; int length; r1.set(5, 8); } public: void set(int w, int l); r1 int area(); width = 5 length = 8 }; 20/09/2020
Lập trình hướng đối tượng 15
Khai báo và tạo lập đối tượng class Rectangle
r2 is a pointer to a Rectangle object { main() private: { Rectangle r1; int width; r1.set(5, 8); //dot notation int length; Rectangle *r2; r2 = &r1; public: r2->set(8,10); //arrow notation void set(int w, int l); } int area(); 5000 r1 r2 }; width = 5 8 6000 length = 8 10 ??? 5000 20/09/2020
Lập trình hướng đối tượng 16
Khai báo và tạo lập đối tượng class Rectangle
r3 is dynamically allocated { main() { private: Rectangle *r3; int width; r3 = new Rectangle(); int length;
r3->set(80,100); //arrow notation public: delete r3; r3 = NULL; void set(int w, int l); } int area(); r3 }; 6000 ??? NULL 20/09/2020
Lập trình hướng đối tượng 17 Ví dụ
vXây dựng lớp Điểm (Point) trong hình học 2D § Thuộc tính • Tung độ • Hoành độ § Thao tác (phương thức) • Khởi tạo • Di chuyển • In ra màn hình • … 20/09/2020
Lập trình hướng đối tượng 18 Ví dụ /*point.cpp*/ #include using namespace std; class point {
/*khai báo các thành phần dữ liệu riêng*/ private: int x,y;
/*khai báo các hàm thành phần công cộng*/ public: void init(int ox, int oy); void move(int dx, int dy); void display(); }; 20/09/2020
Lập trình hướng đối tượng 19 Ví dụ
void point::init(int ox, int oy) {
cout<<"Ham thanh phan init\n"; x = ox; y = oy;
/*x,y là các thành phần của đối tượng gọi hàm thành phần*/ }
void point::move(int dx, int dy) {
cout<<"Ham thanh phan move\n"; x += dx; y += dy; } void point::display() {
cout<<"Ham thanh phan display\n"; cout<<"Toa do: "<} 20/09/2020
Lập trình hướng đối tượng 20