Access Modifiers trong Java

Access Modifiers trong Java

Access Modifiers trong Java

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java Access Modifier , các loại của nó và cách sử dụng chúng với sự trợ giúp của các ví dụ. Mod...
Comment tháng 6 29, 2021

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java Access Modifier, các loại của nó và cách sử dụng chúng với sự trợ giúp của các ví dụ.

Modifiers trong Java là gì?

Trong ngôn ngữ lập trình java, các phạm vi truy cập được sử dụng để thiết lập khả năng truy cập (khả năng hiển thị) của các class, interface, Variable, Method trong java , hàm tạo, và các kiểu dữ liệu và phương thức settter hoặc getter, sau đây là ví dụ thể hiện phạm vị truy cập trong java.

class Animal {
    public void method1() {...}

   private void method2() {...}
}

Modifiers là những từ khóa mà bạn thêm vào các định nghĩa đó để thay đổi ý nghĩa của chúng. Ngôn ngữ Java có nhiều loại Modifiers mà chúng tôi sẽ kể đến với các bạn có 2 loại như sau:

  • Java Access Modifiers
  • Non Access Modifiers

Để sử dụng những Modifiers trong java, bạn đưa từ khóa của nó vào định nghĩa của một lớp, phương thức hoặc biến.

Các loại Access  Modifier trong java

Trước khi tìm hiểu về các loại công cụ sửa đổi quyền truy cập, hãy đảm bảo rằng bạn biết về các Gói Java.
Có bốn loại Phạm vị truy cập trong Java và chúng là:

  • Default: khai báo chỉ hiển thị trong gói (gói riêng tư)
  • Private: các khai báo chỉ hiển thị trong lớp
  • Protected: khai báo hiển thị trong gói hoặc tất cả các lớp con
  • Public: tuyên bố hiển thị ở mọi nơi

Công cụ sửa đổi quyền truy cập Default

Nếu chúng tôi không chỉ định rõ ràng bất kỳ công cụ sửa đổi truy cập nào cho các lớp, phương thức, biến, v.v., thì theo mặc định, công cụ sửa đổi truy cập mặc định được coi là. Ví dụ,

class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

Ở đây, lớp Logger có công cụ sửa đổi quyền truy cập mặc định. Và lớp được hiển thị cho tất cả các lớp thuộc gói defaultPackage. Tuy nhiên, nếu chúng tôi cố gắng sử dụng lớp Logger trong một lớp khác bên ngoài defaultPackage, chúng tôi sẽ gặp lỗi biên dịch

Private Access Modifier

Khi các biến và phương thức được khai báo là private, chúng không thể được truy cập bên ngoài lớp. Ví dụ

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Thuthuat1001";
    }
}

Trong ví dụ trên, chúng ta đã khai báo một biến private có tên là tên và một phương thức private có tên là display (). Khi chúng tôi chạy chương trình, chúng tôi sẽ gặp lỗi sau:
Main.java:18: error: name has private access in Data

Lỗi được tạo ra bởi vì chúng tôi đang cố gắng truy cập vào biến riêng và phương thức riêng của lớp Dữ liệu từ lớp Chính.
Bạn có thể tự hỏi điều gì sẽ xảy ra nếu chúng ta cần truy cập các biến riêng tư đó. Trong trường hợp này, chúng ta có thể sử dụng phương thức getters và setters. Ví dụ,
class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Thuthuat1001");
        System.out.println(d.getName());
    }
}

Kết quả:
The name is Thuthuat1001

Trong ví dụ trên, chúng ta có một biến riêng có tên là tên. Để truy cập biến từ lớp bên ngoài, chúng ta đã sử dụng các phương thức: getName () và setName (). Các phương thức này được gọi là getter và setter trong Java.

Access Modifiers trong Java

Ở đây, chúng ta đã sử dụng phương thức setter (setName ()) để gán giá trị cho biến và phương thức getter (getName ()) để truy cập biến.
Chúng tôi đã sử dụng từ khóa này bên trong setName () để tham chiếu đến biến của lớp. Để tìm hiểu thêm về từ khóa này, hãy truy cập Java Từ khóa này.
Lưu ý: Chúng ta không thể khai báo các lớp và giao diện là riêng tư trong Java. Tuy nhiên, các lớp lồng nhau có thể được khai báo là private. Để tìm hiểu thêm, hãy truy cập Java lồng nhau và lớp bên trong.


Protected Access Modifier

Khi các phương thức và thành viên dữ liệu được khai báo là bảo vệ, chúng ta có thể truy cập chúng trong cùng một gói cũng như từ các lớp con. Ví dụ,

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

Trong ví dụ trên, chúng ta có một phương thức được bảo vệ có tên là display () bên trong lớp Animal. Lớp Animal được kế thừa bởi lớp Dog. Để tìm hiểu thêm về kế thừa, hãy truy cập Kế thừa Java.

Sau đó, chúng tôi tạo một đối tượng dog của lớp Dog. Sử dụng đối tượng mà chúng tôi đã cố gắng truy cập vào phương thức được bảo vệ của lớp cha.

Vì các phương thức được bảo vệ có thể được truy cập từ các lớp con, chúng ta có thể truy cập phương thức của lớp Động vật từ lớp Chó.

Public Access Modifier

Khi các phương thức, biến, lớp, v.v. được khai báo công khai, thì chúng ta có thể truy cập chúng từ bất cứ đâu. Công cụ sửa đổi quyền truy cập công cộng không có giới hạn phạm vi. Ví dụ

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}
Ở đây chúng ta diễn giả như sau,

  • Public Class  Animal được truy cập từ lớp Chính.
  • Private legCount được truy cập từ lớp Chính.
  • Public Method display () được truy cập từ lớp Main.

Blogger Comments


Không có nhận xét nào. Chúc mừng bạn là người đầu tiên.

  • Kí tự đặc biệt
  • Tôi Share
  • Star Mạnh Blog
  • Văn Tuấn Blog
  • Tuổi Trẻ IT
  • Văn Thắng Blog
  • Duy Blogs
  • Star Sinh Blog
  • Lê Bá Long IT
  • Đặt liên kết
  • Đặt liên kết
  • Đặt liên kết