Access modifier là gì

Access modifier: Là các bổ từ dùng để thiết lập phạm vi truy cập đến các lớp, cũng như các thành phần của các lớp trong Java.

Có 4 mức độ truy cập như sau trong Java:

public
protected
default
private

Chú ý là trong lập trình Java có 4 mức truy cập, tuy nhiên chỉ có 3 access modifier gồm: publicprotectedprivate.

1) private access modifier

Dùng để khai báo thành phần đó chỉ có thể truy cập được trong nội bộ class. Những thành phần nào có khai báo private sẽ có mức truy cập là private, chỉ gọi được riêng tư trong nội bộ class. Tất cả các lớp khác sẽ không truy cập được đến các thành phần private của lớp.

Ví dụ: Ta định nghĩa một class có tên là Employee, trong lớp này ta khai báo các thuộc tính của lớp có sử dụng các access modifier khác nhau, trong đó thuộc tính id được khai báo là private.

y nghia cua acceess modifier trong lap trinh java - Private access modifier

Tiếp theo, trong main() method, ta khởi tạo một đối tượng của lớp Employee, rồi truy cập đến thuộc tính id của đối tượng. Ta có thể thấy thông báo lỗi thuộc tính id không truy cập được.

y nghia cua acceess modifier trong lap trinh java  - Private access modifier 2


2) protected access modifier

 

Dùng để khai báo cho những thành phần có thể truy cập được bởi các lớp khác thuộc cùng gói (package) và các lớp con.

Ví dụ:

y nghia cua acceess modifier trong lap trinh java - protected access modifier

Ở đây, ta định nghĩa một lớp Worker kế thừa từ lớp Employee đã được định nghĩa trong bước trên. Lớp Worker đã truy cập đến thuộc tính balance được khai báo là protected ở lớp Employee. Chương trình không báo lỗi, thực hiện tốt, vì lớp con truy cập đến thuộc tính protected của lớp cha là hợp lệ.

3) public access modifier



Dùng để khai báo cho những thành phần ó phạm vi truy cập rộng nhất. Những thành phần của lớp có khai báo public đều có thể truy cập được từ bất kỳ một lớp nào khác.

Ví dụ:

 

y nghia cua acceess modifier trong lap trinh java - pulic access modifier

 
 
Ta có thể thấy, thuộc tính address của lớp Employee trong ví dụ trên được khai báo là public, nên có thể truy cập được bởi các lớp khác.

 

4) default



Khi ta không sử dụng bất kỳ một trong các access modifier nào đối với tên biến hoặc method, thì thành phần đó sẽ mặc định có mức độ truy cập là default.

Những thành phần này sẽ có thể truy cập được bởi các lớp cùng package, còn các lớp ở package khác sẽ không truy cập được. Mức truy cập default sẽ có phạm vi hẹp hơn so với mức protected. Mức protected có thể được truy cập được bởi các lớp con nữa, ngoài các lớp trong cùng package

Ví dụ:
 

y nghia cua acceess modifier trong lap trinh java - default


Ta có thể thấy, thuộc tính name của lớp Employee được khai báo  sẽ có mức truy cập default, có thể sử dụng được bởi lớp khác cùng package.

Tuy nhiên, nếu thuộc tính name được truy cập bởi một class nằm ở một package khác thì sẽ không hợp lệ, như hình bên dưới:
 

y nghia cua acceess modifier trong lap trinh java - default 2


Ở đây chương trình thông báo lỗi, vì 2 lớp nằm ở 2 package khác nhau, nên không thể truy cập đến thuộc tính name (có mức truy cập default).

Chú ý: Đối với class, ta chỉ có thể khai báo là public hoặc không khai báo một access modifier nào.

1 comments On Access modifier là gì

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook