Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mindmap Week 6 - Coggle Diagram
Mindmap Week 6
Từ khóa friend có làm vi phạm tính ẩn dữ liệu?
Hàm friend làm vi phạm tính ẩn dữ liệu
Một hàm được định nghĩa là hàm friend sẽ có thể truy xuất dữ liệu private và protected của một lớp.
Hàm friend không phải là thành viên dữ liệu nên nó không yêu cầu gọi một hàm thông qua đối tượng. Đó là lý do tại sao nó vi phạm nguyên tắc ẩn dữ liệu.
Hàm friend không làm vi phạm tính ẩn dữ liệu
Hàm friend cho phép bạn duy trì nội dung private ở dạng riêng tư, thay vì phải tiết lộ dữ liệu trên toàn hệ thống bằng cách sử dụng các thành viên public, điều này làm cho toàn bộ concept về nó là private bị ẩn khỏi mắt thường. Hàm friend cho phép bạn kiểm soát chính xác ai có thể truy cập vào những thành viên private.
Từ khóa friend có thể làm mất đi tính bao bọc và che dấu thành phần dữ liệu. Do vậy, khi muốn sử dụng loại quan hệ này, cần phải cân nhắc và xác định kĩ tính cần thiết. Nếu sử dụng hợp lý, mối quan hệ này sẽ tạo thêm tính linh hoạt cho tính che dấu dữ liệu của đối tượng
Từ khóa friend trong JAVA
Trong JAVA không có từ khóa friend
Chúng ta có thể tạo ra một cơ chế tương tự như friend trong c++ bằng cách:
-Tạo ra một class public key ở trong class muốn gọi từ khóa friend (tạm gọi là class cha )
-Class key hiện giờ sẽ có truy cập đến tất cả (thuộc tính,phương thức) private của class cha
-Ta sẽ dùng class key này để có thể truy cập đến các (thuộc tính,phương thức) private đó
Ví dụ:
https://github.com/NguyenDinhPhongHCMUS/friend-java.git
Class Inheritence và Override a method in a subclass
Class Inheritence
Kế thừa là việc một class sử dụng các thuộc tính (attribute) và phương thức (method) của một class có sẵn.
class có sẵn được gọi là class cha (superclass) và class kế thừa các thuộc tính và phương thức của class cha được gọi là class con (subclass).
thường được dùng khi phân loại một object (class) thành các object thuộc các loại khác nhau nhưng có chung một số đặc tính mà không phải viết lại cùng một đoạn code nhiều lần và tăng tính thống nhất của code.
Ví dụ:class cha Vehicles có thuộc tính là fuelAmount và phương thức là drive()
class con Truck, Bus, Car,... cũng được thừa hường các thuộc tính này.
Cú pháp trong C++:
https://ideone.com/Ll0pBL
Lưu ý:
lưu ý: các thuộc tính và phương thức trong private sẽ không được kế thừa.
Để một thuộc tính và phương thức được kế thừa mà không được truy cập từ bên ngoài, sử dụng từ khóa "protected".
Override a method in a subclass
Nếu trong cả class con lẫn class cha có một phương thức được khai báo cùng tên, cùng tham số, nếu gọi phương thức trong class con, phiên bản phương thức được khai báo trong class con sẽ được thực thi.
Ví dụ:
https://ideone.com/dMjR8D