JavaScript is required

Khi khai báo, xây dựng lớp các thành phần được đặt trong phạm vi protected nhằm mục đích:

A.

cho phép kế thừa và cho phép tương tác trực tiếp từ bên ngoài lớp.

B.

thể hiện tính đóng gói.

C.

chỉ cho phép kế thừa nhưng ngay bên trong lớp đó cũng không truy cập được.

D.

cho phép kế thừa nhưng không cho phép tương tác trực tiếp từ bên ngoài lớp.

Trả lời:

Đáp án đúng: D


Trong lập trình hướng đối tượng, phạm vi protected được sử dụng để kiểm soát khả năng truy cập của các thành viên (biến, phương thức) của một lớp. Khi một thành phần (biến hoặc phương thức) được khai báo là protected, nó có các đặc điểm sau:

  1. Cho phép kế thừa: Các lớp con (lớp kế thừa) có thể truy cập trực tiếp vào các thành phần protected của lớp cha. Điều này có nghĩa là, bên trong các phương thức của lớp con, bạn có thể sử dụng và thao tác với các biến và phương thức protected của lớp cha một cách tự nhiên.
  2. Không cho phép tương tác trực tiếp từ bên ngoài lớp: Các thành phần protected không thể được truy cập trực tiếp từ bên ngoài lớp và các lớp con của nó. Điều này có nghĩa là, nếu bạn có một đối tượng của lớp (hoặc lớp con), bạn không thể sử dụng toán tử chấm (.) để truy cập vào các thành phần protected từ bên ngoài định nghĩa của lớp đó.

Như vậy, mục đích chính của việc sử dụng phạm vi protected là cho phép kế thừa (lớp con có thể truy cập) nhưng vẫn duy trì tính đóng gói (ẩn các thành phần khỏi việc truy cập trực tiếp từ bên ngoài). Điều này giúp tạo ra một sự cân bằng giữa việc cho phép tái sử dụng mã và bảo vệ dữ liệu của lớp.

Các phương án khác không đúng vì:

  • Phương án 1 nói rằng protected cho phép tương tác trực tiếp từ bên ngoài lớp, điều này sai.
  • Phương án 2 nói rằng protected thể hiện tính đóng gói, nhưng đây chỉ là một phần của mục đích của protected. Tính đóng gói được thể hiện đầy đủ hơn thông qua private.
  • Phương án 3 nói rằng ngay cả bên trong lớp cũng không truy cập được, điều này hoàn toàn sai.

Câu hỏi liên quan