Modifiers trong Java là gì Cách thức truy cập Access Modifiers

Modifiers trong Java

Modifiers trong Java là gì Cách thức truy cập Access Modifiers

“Modifier” là một từ hoặc cụm từ hoặc mệnh đề mô tả, thay đổi hoặc sửa đổi nghĩa của một từ hoặc cụm từ khác theo một cách nào đó. Trong Java, modifier được hiểu là một công cụ sửa đổi truy cập ‘Access modifierS’, có nghĩa là nó được sử dụng để đặt mức truy cập cho các lớp, thuộc tính, phương thức và hàm tạo. Trong bài này, Aptech Vietnam sẽ giúp bạn hiểu tầm quan trọng của Access Modifiers trong Java chi tiết nhất.

Công cụ sửa đổi truy cập Access Modifiers trong Java là gì?

Bạn có thể bắt gặp các từ khóa công khai Public , riêng tư Private và được bảo vệ trong khi thực hành bất kỳ chương trình Java nào, chúng được gọi là Công cụ sửa đổi truy cập. Như tên cho thấy, Bộ sửa đổi truy cập trong Java giúp hạn chế phạm vi của một lớp, hàm tạo, biến, phương thức hoặc thành viên dữ liệu.

Bộ sửa đổi truy cập có thể được chỉ định riêng cho một lớp, trường, phương thức và hàm tạo. Chúng cũng được gọi là các bộ xác định truy cập trong Java , nhưng tên chính xác là các bộ sửa đổi truy cập Java .

Vì vậy, chúng ta hãy đi sâu vào các loại Công cụ sửa đổi truy cập khác nhau trong Java.

Công cụ sửa đổi truy cập Access Modifiers trong Java là gì?

Các loại sửa đổi truy cập Access Modifiers trong Java

Bạn hãy nhớ 4 kiểu sửa đổi truy cập trong Java sau đây:

  • Default Access Modifier – Công cụ sửa đổi truy cập mặc định
  • Private Access Modifier – Công cụ sửa đổi truy cập riêng tư
  • Public Access Modifier – Công cụ sửa đổi truy cập công cộng
  • Protected Access Modifier – Bảo vệ truy cập sửa đổi

Công cụ sửa đổi truy cập mặc định Default Access Modifier

Khi không có công cụ sửa đổi truy cập nào được chỉ định cho một lớp, phương thức hoặc thành viên dữ liệu cụ thể, nó được cho là có công cụ sửa đổi truy cập mặc định .

Các thành viên, lớp hoặc phương thức không được khai báo sử dụng bất kỳ công cụ sửa đổi nào, sẽ có công cụ sửa đổi mặc định chỉ có thể truy cập được trong một gói package tương tự. Điều đó có nghĩa là bạn không khai báo rõ ràng một công cụ sửa đổi truy cập cho một lớp, trường, phương thức, v.v.

package p1;//Class Course có Default access modifier class Course{ void display() { System.out.println(“Hello World!”); }}

Tiếp theo, chúng ta hãy chuyển sang loại tiếp theo, sửa đổi truy cập riêng tư.

Công cụ sửa đổi truy cập mặc định Default Access Modifier

Công cụ sửa đổi truy cập riêng tư Private Access Modifier

Các phương thức hoặc thành viên dữ liệu được khai báo là riêng tư chỉ có thể truy cập được trong lớp mà chúng được khai báo.

Các lớp hoặc giao diện cấp cao nhất không thể được khai báo là riêng tư vì thực tế là:

  • Dấu hiệu riêng tư “chỉ nhìn thấy được ở bên trong lớp kèm theo”
  • Dấu hiệu bảo vệ “chỉ thấy rõ ràng ở bên trong lớp kèm theo và bất kỳ lớp con nào”

Nếu một lớp có được xây dựng riêng tư (nghĩa là thiết lập Private Access Modifier cho class đó) thì bạn không thể tạo đối tượng của lớp đó từ bên ngoài lớp.

Các lớp không thể được đánh dấu bằng công cụ sửa đổi truy cập riêng tư.

Việc biểu thị một lớp với công cụ sửa đổi truy cập riêng tư sẽ ngụ ý rằng không có lớp nào khác có thể nhận được nó. Điều này thường ngụ ý rằng bạn không thể sử dụng lớp bằng bất kỳ sự tưởng tượng nào. Theo cách này, công cụ sửa đổi truy cập riêng không đưa vào các lớp tài khoản.

Lưu ý : Lớp hoặc Giao diện không thể được khai báo là riêng tư.

Cú pháp:

public class Clock { private long time = 0;}

Hãy xem một ví dụ để có ý tưởng rõ ràng về công cụ sửa đổi truy cập riêng tư này.

package p; class A { private void display(){ System.out.println(“Aptech Buôn Ma ThuộtThuột”); } } class B { public static void main(String args[]){ A obj = new A(); //Thử truy cập một lớp được thiết lập Private Access Modifier từ một lớp khác obj.display(); }}

Đầu ra của chương trình này là:

error: display() has private access in Aobj.display();

Hy vọng các bạn rõ ràng với sửa đổi truy cập riêng tư. Tiếp theo, hãy chuyển sang loại tiếp theo, công cụ sửa đổi truy cập công cộng Public Access Modifier.

Công cụ sửa đổi truy cập công cộng Public Access Modifier

  • Công cụ sửa đổi truy cập công cộng được chỉ định bằng cách sử dụng từ khóa công khai “public”.
  • Công cụ sửa đổi truy cập công cộng có phạm vi rộng nhất trong số tất cả các công cụ sửa đổi truy cập khác.
  • Các lớp , phương thức hoặc thành viên dữ liệu được khai báo là công khai có thể truy cập ở mọi nơi trong chương trình, không có giới hạn về phạm vi của các thành viên dữ liệu công cộng.

Cú pháp:

package aptechbmt.co;public class PublicClassDemo {// Ở đây tôi không đề cập đến bất kỳ công cụ sửa đổi nào để nó hoạt động như một công cụ sửa đổi mặc định public int myMethod(int x){ return x; }}

Bây giờ, hãy xem một ví dụ để có ý tưởng rõ ràng về công cụ sửa đổi truy cập công cộng này.

Thí dụ: Tôi có 2 file .java với 2 nội dung bên dưới, sau khi javac tôi chạy file có nội dung thứ 2

package p1;public class A{ public void display() { System.out.println(“Học lập trình tại Aptech Buôn Ma Thuột!”); }}

package p2;import p1.*;class B{ public static void main(String args[]) { A obj = new A; obj.display(); }}

Đầu ra: Học lập trình tại Aptech Buôn Ma Thuột!

Công cụ sửa đổi truy cập công cộng Public Access Modifier

Bảo vệ truy cập sửa đổi Protected Access Modifier

  • Công cụ sửa đổi truy cập được bảo vệ được chỉ định bằng cách sử dụng từ khóa được bảo vệ “Protected”.
  • Các phương thức hoặc thành viên dữ liệu được khai báo là ‘được bảo vệ’ có thể truy cập được trong cùng một gói hoặc các lớp con trong một gói khác nhau.
  • Các thành viên được bảo vệ chỉ có thể được truy cập ở lớp con hoặc các lớp dẫn xuất.

Cú pháp:

package packageFourProtected; public class ProtectedClassFour { protected int myMethod(int a){ return a; }}

Chúng ta hãy xem một ví dụ.

spackage p1;//Class Apublic class A{ protected void display() { System.out.println(“Học lập trình Java tại Aptech Buôn Ma Thuột”); }}

File 2:

package p2;import p1.*; //import tất cả class trong package p1//Class B là subclass củacủa Aclass B extends A |{ public static void main(String args[]) { B obj = new B(); obj.display(); }}

Kết quả: Học lập trình Java tại Aptech Buôn Ma Thuột

Đây là mọi thứ bạn cần biết về các phương thức khác nhau của các công cụ sửa đổi truy cập trong Java.

Sửa đổi truy cập với phương thức ghi đè

Nếu trong trường hợp, bạn đang ghi đè bất kỳ phương thức nào, thì phương thức được ghi đè được khai báo trong lớp con không được hạn chế.

Hãy xem ví dụ dưới đây.

class A{ protected void msg() { System.out.println(“Hello java”); }}public class Simple extends A { void msg() { System.out.println(“Hello java”); } //C.T.Error public static void main(String args[]) { Simple obj=new Simple(); obj.msg(); }}

Công cụ sửa đổi mặc định hạn chế hơn bảo vệ. Đây là lý do tại sao có một lỗi thời gian biên dịch.

Kiểm soát truy cập và kế thừa

  • Nếu trong trường hợp, bạn tạo một lớp con của một số lớp, thì các phương thức trong lớp con đó có thể có các bộ sửa đổi truy cập ít truy cập được gán cho chúng hơn lớp supperclass.
  • Chẳng hạn, nếu một phương thức trong lớp cha là công khai thì nó cũng phải được công khai trong lớp con. Nếu một phương thức trong siêu lớp được bảo vệ, thì nó phải được bảo vệ hoặc công khai trong lớp con được chỉ định.
  • Các phương thức được khai báo là riêng tư không được kế thừa.

Tổng kết

Trên đây là toàn bộ thông tin về Modifiers trong Java mà Aptech Buôn Ma Thuộc đã chia sẻ đến cho bạn. Mong rằng với những thông tin trên bạn đã có thể hiểu rõ về công cụ này và ứng dụng được trong các dự án của mình.

Leave a Reply

Your email address will not be published. Required fields are marked *