You are on page 1of 6

CHƯƠNG 1: PHẦN LÝ THUYẾT

I: Lập trình hướng đối tượng

1: khái niệm:

OOP (viết tắt của Object Oriented Programming) – lập trình hướng đối tượng là một
phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. OOP tập trung vào các
đối tượng thao tác hơn là logic để thao tác chúng.

2: Đặc trưng cơ bản

2.1: tính đóng gói

 Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện
cho việc quản lý và sử dụng. Tức là mỗi lớp được xây dựng để thực hiện một nhóm
chức năng đặc trưng của riêng lớp đó.
  Ngoài ra, đóng gói còn để che giấu một số thông tin và chi tiết cài đặt nội bộ để bên
ngoài không thể nhìn thấy.

Ví dụ: đối tượng mail. Ta chỉ nhận được thông báo chứ không thể biết thông tin bên
trong

2.2: tính kế thừa

Nó cho phép xây dựng một lớp mới dựa trên các định nghĩa của lớp đã có. Có nghĩa là
lớp cha có thể chia sẽ dữ liệu và phương thức cho các lớp con. Các lớp con khỏi phải định nghĩa
lại, ngoài ra có thể mở rộng các thành phần kế thừa và bổ sung thêm các thành phần mới. Tái sử
dụng mã nguồn 1 cách tối ưu, tận dụng được mã nguồn. Một số loại kế loại kế thừa thường gặp:
đơn kế thừa, đa kế thừa, kế thừa đa cấp, kế thừa thứ bậc.

Ví dụ:

2.3: tính đa hình

Tính đa hình là một hành động có thể được thực hiện bằng nhiều cách khác nhau. Đây lại
là một tính chất có thể nói là chứa đựng hầu hết sức mạnh của lập trình hướng đối tượng.

Hiểu một cách đơn giản hơn: Đa hình là khái niệm mà hai hoặc nhiều lớp có những
phương thức giống nhau nhưng có thể thực thi theo những cách thức khác nhau.

Ví dụ: một sinh viên tại thời điểm này đang học, nhưng tại thời điểm khác có thể
đang ngủ hoặc đang chơi,…
2.4: tính trừu tượng

Tính trừu tượng giúp loại bỏ những thứ phức tạp, không cần thiết của đối tượng và
chỉ tập trung vào những gì cốt lõi, quan trọng. Có nghĩ là tổng quát hóa một cái gì đó lên,
không cần chú ý chi tiết bên trong. Nó không màng đến chi tiết bên trong là gì và người ta vẫn
hiểu nó mỗi khi nghe về nó.

Ví dụ: một sinh viên ta chú ý đến học tên, ngày sinh, địa chỉ chứ không quan tâm đến
màu tóc, giọng nói,…

II: lớp

Một lớp là một kiểu dữ liệu bao gồm các thuộc tính và các phương thức được định nghĩa
từ trước. Đây là sự trừu tượng hóa của đối tượng. Khác với kiểu dữ liệu thông thường, một lớp là
một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các phương thức và các thuộc tính. Hiểu nôm
na hơn là các đối tượng có các đặc tính tương tự nhau được gom lại thành một lớp đối tượng.

Hay lớp là sự trừu tượng hóa của đối tượng. Những đối tượng có những đặc tính
tương tự nhau sẽ được tập hợp thành một lớp. Lớp cũng sẽ bao gồm 2 thông tin là thuộc tính
và phương thức.

Một đối tượng sẽ được xem là một thực thể của lớp.

Ví dụ:

III: Phương thức

1: hàm tạo (constructor)

Hàm tạo là một phương thức của lớp, dung để tạo dựng một đối tượng mới. Hàm tạo sẽ được
khởi gán giá trị cho các thuộc tính của đối tượng, khi đối tượng được cấp phát bộ nhớ.

Hàm tạo là một phương thức đặc biệt có tên lớp trùng với tên phương thức, không có dữ liệu
trả về.

Cách khai báo hàm tạo:

+ định nghĩa trong lớp:

<tên lớp> ([danh sach tham số]);

+ định nghĩa ngoài lớp:

<tên lớp>::< tên lớp> ([danh sách tham số]);

{
//thâm hàm

Hàm tạo có 2 loại:

+ hàm tạo có đối số: Với loại hàm tạo này ta có thể truyền đối số cho chúng. Thông thường, các
đối số này giúp khởi tạo một đối tượng khi nó được tạo. Để khai báo một hàm khởi tạo có tham
số chỉ cần thêm các tham số vào nó giống như cách bạn thêm tham số bất kỳ hàm nào khác.Khi
bạn xác định phần thân của hàm tạo, hãy sử dụng các tham số để khởi tạo đối tượng.

+ hàm tạo không có đối số: Hàm tạo loại này sẽ không truyền vào bất kì một đối số nào.

2: hàm hủy

-Hàm huỷ cũng là một hàm thành viên đặc biệt giống như hàm tạo, nó được dùng để phá huỷ
hoặc xoá một đối tượng trong lớp. Nếu trong lớp không định nghĩa hàm hủy thì một hàm hủy
mặc định không làm gì cả được phát sinh.

- chức năng: hủy bỏ giải phóng các đối tượng khi nó hết phạm vi tồn tại.

Khai báo:

~<tên lớp>();

3: con trỏ this

This là một con trỏ đặc biệt dùng để trỏ đến địa chỉ của đối tượng hiện tại. Như vậy để
truy cập đến các thuộc tính, phương thức của đối tượng hiện tại thì ta sẽ sử dụng con trỏ.

Cú pháp:

Kiểu_dữ_liệu*tên_biến;

4: phương thức getter, setter

- ta cần xây dựng getter, setter để truy xuất giá trị của thuộc tính ( vì thuộc tính có phạm vi truy
xuất là private)

4.1: Getter
Lấy giá trị của biến

4.2: setter

Truyền vào giá trị cho biến

IV: nạp chồng toán tử

1: nạp chồng hàm

Là khả năng các hàm có thể trùng tên nhau nhưng khác nhau về :

+kiểu dữ liệu trả về

+ kiểu dữ liệu của tham số

+ số lượng tham số truyền vào

2: nạp chồng phương thức

Cùng một tên, cùng lớp nhưng khách nhau về danh sách tham số( khác hau về kiểu dữ liệu, khác
nhau về số lượng tham số)

V: phương thức tĩnh, phương thức thuận ảo

1: phương thức tĩnh

-Trong lập trình hướng đối tượng ta có thể hiểu dữ liệu tĩnh là loại dữ liệu được sử dụng ở dạng
toàn cục, dù nó được xử lý ở bất kỳ file nào trong cùng một chương trình đều được lưu lại trong
lớp, ta có thể gọi chúng là thành viên tĩnh. Mỗi thành viên đều có các mức truy cập private,
protected và public bình thường

-Quy tắc gọi hàm tĩnh:

+ nếu lời gọi xuất phát từ một đối tượng của lớp nào thì đối tượng của lớp đó được gọi

+ nếu lời gọi xuât phát từ một con trỏ kiểu lớp nào, thì hàm thành phần của lớp đó sẽ được gọi
bất kể con trỏ chỉ chứa địa chỉ của đối tượng nào.
2: phương thức thuần ảo

-Hàm ảo chỉ khác hàm tĩnh là: khi gọi từ một con trỏ, lời gọi tới hàm từ một con trỏ chưa biết rõ
hàm nào được gọi. con trỏ đang trỏ tới đối tượng của lớp nào thì hàm của lớp đó sẽ được gọi.

-Phương thức ảo:  là 1  phương thức ảo và không có định nghĩa bên trong.

-Một hàm ảo có lời khai báo kết thúc bằng =0 được gọi là hàm ảo thuần

-Virtual  là từ khoá dùng để khai báo 1 phương thức ảo (phương thức ảo là phương thức có thể
ghi đè được).

VI: Kế thừa

1: khái niệm

Là cho phép một lớp mới được thừa hưởng các thuộc tính và phương thức từ lớp cha.
Ngoài ra lớp mới có thể có thêm các thuộc tính riêng của nó.

+ lớp mới được gọi là lớp con (lớp dẫn xuất)

+ lớp đã có được gọi là lớp cha ( lớp cơ sở)

Cú pháp:

Class <dẫn_xuất>:[kiểu_dẫn_xuất]<tên_lớp_cơ_sở>

// thân hàm

};

Kiểu dẫn xuất:

 Kế thừa Public làm cho các dữ liệu thành viên của lớp cơ sở được truy cập công khai
trong lớp dẫn xuất và các thành viên Protected của lớp cơ sở vẫn được bảo vệ truy cập
trong lớp dẫn xuất.
 Kế thừa Protected làm cho các dữ liệu thành viên với chỉ định truy cập là Public và
Protected của lớp cơ sở được bảo vệ trong lớp dẫn xuất.
 Kế thừa Private làm cho các thành viên với chỉ định truy cập là Public và Protected của
lớp cơ sở trở thành Private trong lớp dẫn xuất.
2: các loại kế thừa

+ đơn kế thừa: lớp con chỉ có một cha

+ kế thừa đa cấp: lớp con được kế thừa từ một lớp con khác

+kế thừa phân cấp: sẽ có nhiều hơn một lớp con được kế thừa một lớp cha duy nhất.

+kế thừa lai( kế thừa ảo): kế thừa nhiều hơn một loại kế thừa( kết hợp).

VII:đa hình

đa hình có nghĩa là có nhiều dạng. Nói một cách đơn giản, chúng ta có thể định nghĩa đa hình là
khả năng của một thông điệp được hiển thị dưới nhiều dạng.

ví dụ: một sinh viên hiện tại đang làm bài tập, nhưng ở thời điểm khác lại đang chơi,…

8: interface

You might also like