Qua hầu như phần trước bọn họ đã nạm được những kiến thức cơ bạn dạng của lập trình hướng đối tượng cũng như các cú pháp khai báo. Vào phần này họ sẽ mày mò sâu hơn vào trọng tâm tính chất của OOP, ví dụ là tính gói gọn nhé.

Bạn đang xem: Tính đóng gói trong lập trình hướng đối tượng

1. Tính gói gọn (Encapsulation)

Hiểu 1-1 giản, góidữ liệu và thông tin vào trong một tấm (class) được điện thoại tư vấn là tính đóng gói.

Ví dụ về tính đóng góp gói:

class mayvitinh {private: string mausac; int chieudai, chieurong;public: void input() cout mausac); cout > this->chieudai; cout > this->chieurong; void output() { cout mausac chieudai chieurong trong khúc code trêntính đóng góiđược diễn đạt qua cácthuộc tínhmausac, chieudai, chieurong vàphương thứcinput(), output() vào trong class mayvitinh.Bạn không thể truy vấn đến cácprivatedata hoặc điện thoại tư vấn đếnprivatemethods của class từ bên ngoài class đó.

Có thể nói tính gói gọn (Encapsulation) là hiệ tượng của che giấu tài liệu (Data Hiding)bởi bọn chúng được lớp (class) bít giấu đi (ở dạngprivate)một sốdữ liệu, hàm với phương thứcđể bảo vệ rằng những dữ liệu này sẽ được truy vấn và thực hiện đúng mục đích, đúng cách thông qua những hàm và cách tiến hành ở dạngpublicmà class cung cấp. Đó là lý do bạn ko thể truy cập đến những thuộc tínhprivatehoặc hotline đến phương thứcprivatecủa class từ bên phía ngoài class đó.

Tính đóng góp gói được miêu tả khi mỗi đối tượng người sử dụng mang tâm lý là private ở bên trong một class và những đối tượng người sử dụng khác không thể truy cập trực tiếp vào phạm vi này. Cầm cố vào đó họ chỉ có thể gọi các hàm với phạm vi publicđược gọi là phương thức.

Cụ thể, đối tượng người sử dụng sẽ sở hữu trạng thái riêng trải qua các cách thức và không một class như thế nào khác rất có thể truy cập vào được trừ khi cho phép.Nói thông thường trạng thái đối tượng người sử dụng không đúng theo lệ hay do chưa được kiểm tra tính thích hợp lệ, công việc thực hiện không đúng trình tự hoặc bị quăng quật qua yêu cầu trong OOP bao gồm một quy tắc quan trọng cần nhớ chính là phải luôn luôn khai báo những trạng thái bên phía trong của đối tượng là private và chỉ cho truy vấn qua cácpublic/protectedmethod

Hãy tưởng tượng bọn họ xây dựng trò chơi tên Lửa không Miễn Phívà có những nhân vật giao tiếp với nhau. Bọn họ muốn vận dụng tính đóng góinên đã gói gọn tất cả những gì liên quan tới các nhân đồ gia dụng với nhau thành một tấm nhân vật, nó trông như thế này:

*

Chúng ta rất có thể ăn Blue nhung không thể điều chỉnh lượng năng lượng của nhân vật

Ở đây trạng thái của nhân vậtlà những thuộc tính private năng lượng, máu, thông thạo và cách tiến hành private tung chiêumà hoàn toàn có thể được hotline bất cứ lúc nào nhưng lớp không giống thì không thể. Cầm cố vào đó ở lớp khác rất có thể truy cập hầu hết phương thức public như ăn blue, Ctrl+6hạ gục kẻ địch. Đó đó là tính đóng gói (Encapsulation).

Vậy các bạn có nghĩ gồm cách nào bạn có thể truy cập các thành phần privatecủa một class từ các hàm quanh đó classđó tốt từ những class không giống không ?

Có đấy, họ sẽ nhờ tới từ khóa friend, cụ thể là hàm các bạn và lớp bạn.

2. Hàm bạn

Nếu một hàm ko kể lớp được định nghĩa là 1 hàm các bạn (Friend function), thì tài liệu protectedvà riêng tư privatecủa một lớp có thể được truy tìm cập bằng cách sử dụng hàm.Một lớp tất cả thể có rất nhiều hàm bạn, với chúng buộc phải nằm bên ngoài class

Cú pháp:

class TenLop friend KieuDuLieu TenHam();; Ví dụ:

#include using namespace std; class MayLaptop; class MayviTinh { int chieudaiMVT; public: void setChieudaiMVT(int chieudaiMVT) this->chieudaiMVT = chieudaiMVT; void HienThi() cout chieudaiMVT chieudaiML = chieudaiML; void HienThi() { cout chieudaiML sau thời điểm thực hiện công tác sẽ mang lại kết quả:

3. Lớp bạn

Tương từ như hàm bạn, lớp các bạn ( friend class )cũng chất nhận được lớp bạn của lớp kia truy vấn các thành viênprivate.

Khai báo lớp A là các bạn của lớp B không tồn tại nghĩa lớp B là bạn của lớp A (chỉ có tính 1 chiều). Điều đó có nghĩa là chỉ bao gồm lớp A truy vấn được thành viên của lớp B, nhưng trái lại lớp B không thể truy vấn ngược lại của lớp A.

Chúng ta cùng xem ví dụ dễ dàng về lớp bạn trong C++:

#include using namespace std; class mayLaptop int chieudai = 10; friend class mayVitinh; ; class mayVitinh { public: void HienThi(mayLaptop mayAcer) { cout Và kết quả sau khi thực thi chương trình bên trên như sau:

Trong lấy một ví dụ trên, mayVitinh được khai báo là friend trong lớp mayLaptop. Bởi đó, mayVitinh là chúng ta của mayLaptop. MayVitinh rất có thể truy cập những thành viên private của mayLaptop.

Tạm kết

Vậy là chúng ta đã đọc hơn về một đặc thù đặc trưng của lập trình phía đối tượng, ví dụ là tính đóng gói và những kỹ năng và kiến thức về hàm bạn, lớp bạn. Nội dung bài viết của mình xin hoàn thành tại đây, mình hy vọng bài này vẫn giúp chúng ta nhiều hơn trong quá trình tò mò OOP.

Xem thêm: Từ Điển Anh Việt " Lay Up Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích

Các bạn cũng có thể rate và comment góp ý ở dưới nếu thấy bất cứ điều gì không đúng chuẩn để những bài xích sau tốt hơn. Cảm ơn các bạn đã theo dõi.