Rate this post

Access modifier trong Java là một từ khóa được sử dụng để khai báo mức độ truy cập của một thuộc tính hoặc phương thức. Trong Java, có 4 loại access modifiers: public, private, protected và default (không có từ khóa).

  • public: Mức độ truy cập cao nhất, có thể truy cập từ bất kỳ nơi nào trong chương trình.
  • private: Mức độ truy cập thấp nhất, chỉ có thể truy cập từ chính lớp chứa thuộc tính hoặc phương thức.
  • protected: Giữa public và private, có thể truy cập từ các lớp con của lớp chứa nó hoặc từ cùng package với nó.
  • default (không có từ khóa): Giống như protected nhưng chỉ có thể truy cập từ cùng package với nó.

Mặc định tất cả các thuộc tính và phương thức trong Java đều có access modifier là default nếu không khai báo rõ.

Các bài viết liên quan:

So sánh giữa các loại access modifier trong Java

Trong Java, có 4 loại Access Modifier khác nhau: Public, Private, Protected và Default (còn được gọi là Package-private). Các loại Access Modifier này được sử dụng để kiểm soát quyền truy cập đến các thành phần của một lớp, ví dụ như biến, phương thức và lớp con.

Dưới đây là một số điểm khác nhau giữa các loại Access Modifier này:

  1. Public: Phương thức, biến hoặc lớp được khai báo là Public có thể truy cập từ mọi nơi trong cùng package hoặc từ bất kỳ package nào sử dụng lớp đó.
  2. Private: Phương thức hoặc biến được khai báo là Private chỉ có thể truy cập từ bên trong lớp chứa chúng. Các lớp khác, kể cả lớp con của lớp đó, không thể truy cập các thành phần Private này.
  3. Protected: Phương thức hoặc biến được khai báo là Protected có thể truy cập từ bên trong cùng package hoặc từ bất kỳ package con nào của package đó. Ngoài ra, lớp con của lớp đó cũng có thể truy cập các thành phần Protected này.
  4. Default/Package-private: Nếu không sử dụng bất kỳ Access Modifier nào, mặc định là các thành phần sẽ được khai báo là Default (Package-private). Các thành phần này có thể truy cập bởi các lớp trong cùng package, nhưng không thể truy cập bởi các lớp bên ngoài package.

Sử dụng đúng Access Modifier là rất quan trọng trong việc thiết kế và phát triển phần mềm Java. Nó giúp kiểm soát quyền truy cập đến các thành phần của lớp và tăng tính bảo mật của ứng dụng.

Cách sử dụng Access modifier trong Java

Access modifier trong Java được sử dụng để kiểm soát quyền truy cập vào các thành phần của lớp như biến, phương thức hoặc lớp con. Dưới đây là một số cách sử dụng Access modifier trong Java:

  1. Private: sử dụng private cho các thành phần trong lớp để đảm bảo rằng chúng chỉ có thể được truy cập bởi các phương thức trong lớp đó. Không có lớp nào khác có thể truy cập vào các thành phần private này.
  2. Default: nếu không có access modifier nào được sử dụng, mặc định là default. Các thành phần được khai báo với access modifier default có thể truy cập bởi các lớp trong cùng package.
  3. Protected: các thành phần được khai báo với access modifier protected có thể được truy cập bởi các lớp con và các lớp trong cùng package.
  4. Public: sử dụng public cho các thành phần trong lớp để đảm bảo rằng chúng có thể được truy cập bởi bất kỳ lớp nào trong bất kỳ package nào.

Ví dụ:

public class Example {
    private int numPrivate;
    int numDefault;
    protected int numProtected;
    public int numPublic;
}

Trong ví dụ này, numPrivate chỉ có thể truy cập được bởi các phương thức trong cùng lớp, numDefault có thể truy cập bởi các lớp trong cùng package, numProtected có thể truy cập bởi các lớp con và các lớp trong cùng package và numPublic có thể truy cập bởi bất kỳ lớp nào trong bất kỳ package nào.

Xem thêm Giới thiệu về Package trong Flutter

Một số ví dụ về Access modifier trong Java

Ví dụ 1: Sử dụng public

public class A {
    public int x;
    public void setX(int value) {
        x = value;
    }
}

class B {
    void test() {
        A a = new A();
        a.x = 5; // Được phép truy cập vì là public
        a.setX(10); // Được phép truy cập vì là public
    }
}

Ví dụ 2: Sử dụng private

class A {
    private int x;
    private void setX(int value) {
        x = value;
    }
}

class B {
    void test() {
        A a = new A();
        a.x = 5; // Không được phép truy cập vì là private
        a.setX(10); // Không được phép truy cập vì là private
    }
}

Ví dụ 3: Sử dụng protected

class Parent {
    protected int x;
    protected void setX(int value) {
        x = value;
    }
}

class Child extends Parent {
    void test() {
        x = 5; // Được phép truy cập vì là lớp con của Parent
        setX(10); // Được phép truy cập vì là lớp con của Parent
    }
}

class Main {
    void test() {
        Parent parent = new Parent();
        parent.x = 5; // Không được phép truy cập vì là đối tượng Parent
        parent.setX(10); // Không được phép truy cập vì là đối tượng Parent
    }
}

Ví dụ 4: Sử dụng default

class A {
    int x;
    void setX(int value) {
        x = value;
    }
}

class B {
    void test() {
        A a = new A();
        a.x = 5; // Được phép truy cập vì cùng package với A
        a.setX(10); // Được phép truy cập vì cùng package với A
    }
}

Trong các ví dụ trên, ta có thể thấy rõ sự khác nhau giữa các loại access modifier đó là public, private, protected và default (không có từ khóa) trong việc truy cập vào các thuộc tính và phương thức của một lớp.

Cần lưu ý rằng, việc sử dụng access modifier là một kỹ thuật quan trọng trong việc thiết kế và phát triển phần mềm, giúp cho chương trình của bạn dễ dàng quản lý và bảo mật hơn.

Xem thêm Http package trong Go lang

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now