Khi xây dựng lớp đối tượng, các thuộc tính dữ liệu thường được khai báo trong phạm vi:
Trả lời:
Đáp án đúng: B
Trong lập trình hướng đối tượng, thuộc tính dữ liệu của một lớp thường được khai báo trong phạm vi `private` hoặc `protected`.
* **private:** Các thuộc tính private chỉ có thể được truy cập và thay đổi bên trong lớp mà chúng được khai báo. Điều này giúp đảm bảo tính đóng gói (encapsulation) của dữ liệu, ngăn chặn sự truy cập trực tiếp từ bên ngoài và bảo vệ tính toàn vẹn của đối tượng.
* **protected:** Các thuộc tính protected có thể được truy cập bên trong lớp mà chúng được khai báo và bởi các lớp con (subclass) của nó. Phạm vi protected cho phép kế thừa và mở rộng các thuộc tính, đồng thời vẫn giới hạn quyền truy cập từ bên ngoài lớp và các lớp không liên quan.
Thuộc tính `public` cho phép truy cập từ bất kỳ đâu, làm giảm tính đóng gói và có thể dẫn đến các vấn đề bảo trì và bảo mật.
Do đó, đáp án chính xác nhất là **private and protected**, vì nó bao gồm cả hai phạm vi thường được sử dụng để khai báo thuộc tính dữ liệu trong lớp đối tượng.