F-Learning

PHẠM VI TRUY CẬP

Bạn hãy cho biết kết quả khi chạy chương trình sau:

Thành phần máy tính

LÝ THUYẾT:

Nhìn vào đoạn code khai báo phương thức display() bạn sẽ thấy có từ khoá private. Với các bài trước bạn đã quen với việc khai báo một phương thức bắng từ khoá public, vậy sự khác nhau giữa public và private là gì? Thì qua blog ny mình sẽ giúp các bạn hiểu rõ

Phạm quy truy cập

Phạm vi truy cập là khai niệm để xác định xem một hay một phương thức có được truy xuất từ bên ngoài hay không. Trong java có 4 loại phạm vi truy cập: private, default,protected và public. Xem bảng minh hoạ dưới đây để có cái nhìn quan về phạm vi truy cập:

Thành phần máy tính

Phạm vi truy cập private:

Đây là phạm vi truy cập hạn chế nhất, tất cả thuộc tính và phương thức sẽ chỉ được truy xuất từ bên trong lớp đó. Ví dụ nếu bạ truy xuất một thuộc tính hoặc phương thức được khai báo với từ khoá private từ một lớp khác thì chương trình sẽ báo lỗi giốngd như sau:

Thành phần máy tính

Để chương trình trên có thêr chạy được bạn cần thay đỏi phạm quy truy cập của thuộc tính name trong lớp Student sang default, protected hoặc public.

Phạm vi truy cập mặc định (default):

Khi khai báo một thuộc tính hoặc một phương thức mà không khai báo phạm vi truy cập thì chương trình sẽ hiểu là bạn đang khai báo với phạm vi truy cập mặc định. Các biến và các phương thức có phạm vi truy cập mặc định chỉ có thể truy xuất trong cùng một package. Ví dụ trong cùng package OOP bạn cso thể truy xuất tới thuộc tính của lớp Student từ lớp Entry giống chương trình sau.

Thành phần máy tính

Nhưng nếu 2 lớp này khác package thì chương trình sẽ báo lỗi:

Thành phần máy tính

Trong trường hợp trên, để chương trình chạy được bạn cần thay đổi phạm vi truy cập từ default sang public.
Lưu ý: muốn sử dụng một lớp từ package khác thì bạn cần import lớp này vào bằng câu lệnh import.

Thành phần máy tính

Phạm vi truy cập protected

Đây là phạm vi truy cập tương tự với phạm vi truy cập default nhưng ít hạnchee hơn ở chỗ các thuộc tính và các phương thức có phạm vi truy này có thể được truy xuất từ một lớp con của package khác.

Phạm vi truy cập public

Đây là phạm vi truy cập rộng nhất, các thuôccj tính và phương thức có phạm vi truy cập này cso thể được truy xuất từ bất cứ đâu( kể cả từ các package khác).

Có thể bạn sẽ thích