You are on page 1of 5

ÔN TẬP LÝ THUYẾT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Câu 1: Phương pháp lập trình hướng đối tượng là gì?


- Lấy đối tượng làm nền tảng để xây dựng thuật giải, xây dựng chương trình.
- Dựa trên kiến trúc lớp (class) và đối tượng (object).

Câu 2: Đối tượng là gì?


- Là thực thể trong thế giới thực bao gồm thuộc tính và hành động.
- Ví dụ: một sinh viên, một bản dữ liệu trong tin học.

Câu 3: Lớp đối tượng là gì?


- Tập hợp các đối tượng có đặc tính tương tự nhau. Một class được đặc trưng
bằng các thuộc tính, và các hành động (hành vi, thao tác):
+ Thuộc tính: là thành phần của đối tượng, có giá trị nhất định cho mỗi đối
tượng tại mỗi thời điểm trong hệ thống.
+ Thao tác: thể hiện hành vi của một đối tượng tác động qua lại với các đối
tượng khác hoặc với chính nó.

Câu 4: Các đặc điểm quan trọng của OOP.


- Trừu tượng hóa – Abstraction: cách nhìn khái quát về một tập các đối tượng
có chung các đặc điểm được quan tâm (và bỏ qua những chi tiết không cần
thiết).
- Đóng gói – Encapsulation (dùng để che giấu thông tin): 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.
- Thừa kế - Inheritance: 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 tại lớp D.
Cho phép cài đặt mhiều quan hệ giữa các đối tượng: đặc biệt hóa - tổng quát
hóa.
- Đa hình – Polymorphism: là cơ chế cho phép một tên thao tác hoặc thuộc tính
có thể được định nghĩa tại nhiều lớp và có thể có nhiều cài đặt khác nhau tại
mỗi lớp trong các lớp đó.

Câu 5: Phạm vi truy xuất.

Lê Nguyễn Minh Tâm – 15520756 – CNTT2015


ÔN TẬP LÝ THUYẾT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

- Gồm 3 từ khóa: public, private, protected để xác định phạm vi truy xuất.
• Private: truy xuất bên trong phạm vi lớp và trong hàm bạn.
• Protected: truy xuất bên trong phạm vi của lớp, trong phạm vi lớp dẫn
xuất và trong hàm bạn.
• Public: truy xuất trong bất kỳ nơi đâu.
 1 lớp có thể có nhiều nhãn private và public, mỗi nhãn có phạm vi ảnh hướng cho đến
khi gặp một nhãn kế tiếp hoặc hết khai báo lớp.

Câu 6: Constructor là gì? Dùng làm gì? Tên, kiểu dữ liệu trả về? Danh sách tham
số? Thế nào là constructor mặc định?
- Định nghĩa: Constructor (Hàm thiết lập) 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.
- Công dụng: Constructor dùng thiết lập để khởi tạo các giá trị thành phần của
đối tượng.
- Đặc điểm của constructor:
• Có tên trùng với tên lớp.
• Không có kiểu trả về.
• Có thể không có hoặc có tham số đầu vào.
• Trong một lớp có thể có một hay nhiều constructor.
- Constructor mặc định: được gọi khi thể hiện được khai báo mà không có đối
số nào được cung cấp.

Câu 7: Destructor là gì?


- Định nghĩa: Destructor là hàm hủy bỏ được gọi ngay trước khi một đối tượng
bị thu hồi, dùng để dọn dẹp cần thiết trước khi một đối tượng bị hủy.
- Công dụng: Destructor được tự động gọi khi đối tượng hết phạm vi sử dụng. -
Đặc điểm của destructor:
• Có tên trùng với tên với nhưng có dấu ~ đặt trước.
• Không có kiểu trả về.
• Không có tham số đầu vào.
• Trong một lớp có duy nhất 1 destructor.

Câu 8: Kế thừa là gì? Cách khai báo, ví dụ minh họa.

Lê Nguyễn Minh Tâm – 15520756 – CNTT2015


ÔN TẬP LÝ THUYẾT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

- Kế thừa dùng để biểu diễn mối quan hệ đặc biệt hóa - tổng quát hóa giữa
các lớp. Các lớp được trừu tượng hóa và được tổ chức thành một sơ đồ phân
cấp lớp.
- Các lớp có các đặc điểm tương tự nhau có thể tổ chức thành một sơ đồ phân
cấp kế thừa (cây kế thừa) - Các khai báo:

class LopCha
{
// Thành phần của lớp cơ sở
};
class LopCon: (Từ khóa dẫn xuất: public/private/protected) LopCha
{
// Thành phần bổ sung của lớp dẫn xuất
};

- Ví dụ:
class CNguoi
{
protected:
char *HoTen;
public:
Nguoi();
~Nguoi();
void Nhap();
void Xuat();
};
class CSinhVien: public CNguoi
{
protected:
int MSSV; public:
CSinhVien ();
~ CSinhVien ();
void Nhap();
void Xuat();
};

Lê Nguyễn Minh Tâm – 15520756 – CNTT2015


ÔN TẬP LÝ THUYẾT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Câu 9: Phạm vi truy xuất(để phân biệt phần này với chương 3, hỏi phần này sẽ có
các từ khóa “kế thừa” hay “dẫn xuất”)

- Các thuộc tính và phương tính được khai báo trong phạm vi private của
lớp cơ sở sẽ không được hiểu ở lớp dẫn xuất.
- Các thuộc tính và phương thức được khai báo trong phạm vi protected của
lớp cơ sở nếu được dẫn xuất bằng từ khóa …(1)… thì các thuộc tính và
phương thức đó sẽ được hiểu như là thành phần …(2)… của lớp dẫn xuất.
Các khoảng trống (1), (2) sẽ lần lượt là: private – private.
• protected – protected. public – protected.
- Các thuộc tính và phương thức được khai báo trong phạm vi public của
lớp cơ sở nếu được dẫn xuất bằng từ khóa …(3)… thì các thuộc tính và
phương thức đó sẽ được hiểu như là thành phần …(4)… của lớp dẫn xuất.
Các khoảng trống (3), (4) sẽ lần lượt là:
private – private.
• protected – protected.
• public – public.

Câu 10: Phương thức ảo là gì? Những lưu ý khi sử dụng phương thức ảo? -
Là cách thể hiện tính đa tình trong C++
- Các phương thức ở lớp cơ sở có tính đa hình phải được định nghĩa là một
phương thức ảo.

Lê Nguyễn Minh Tâm – 15520756 – CNTT2015


ÔN TẬP LÝ THUYẾT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

- Lưu ý:
• Phương thức ảo chỉ hoạt động thông qua con trỏ.
• Muốn hàm trờ thành phương thức ảo có 2 cách:
1. Thêm từ khóa virtual vào trước khai báo hàm:
Ví dụ: virtual void Nhap();
2. Phương thức tương ứng ở lớp cơ sở đã là phương
thức ảo.
• Phương thức ảo chỉ hoạt động nếu phương thức ở lớp cơ sở và lớp con có
nghi thức giao tiếp GIỐNG HỆT nhau.
• Nếu ở lớp con không định nghĩa lại phương thức ảo thì sẽ gọi phương thức
ở lớp cơ sở (gần nhất có định nghĩa)

Câu 11: Phương thức thuần ảo là gì?


- Là phương thức ảo không có nội dung.

Câu 12: Lớp trừu tượng là gì?


- Là lớp cơ sở không có đối tượng nào thuộc chính nó.

Lê Nguyễn Minh Tâm – 15520756 – CNTT2015

You might also like