Private Public Protected trong Java

Access Modifier trong Java bao gồm Private, Public, ProtectedDefault. Nó đóng vai trò quan trọng trong việc giới hạn truy cập dữ liệu. Xác định phạm vi có thể truy cập bao gồm biến, phương thức, constructor hoặc lớp.

Trong một dự án Java có nhiều thành viên tham gia. Có những dữ liệu được dể là public, còn cái khác thì cần phải đặt là protected hay private để bảo vệ. Tránh việc chỉnh sửa gây lỗi trong quá trình làm việc.

Dưới đây chúng ta sẽ đi tìm hiểu về 4 giới hạn truy cập có trong ngôn ngữ lập trình Java.

1. Private trong java là gì?

Trong Java, private là một từ khóa truy cập (access modifier) được sử dụng để xác định phạm vi truy cập của một thuộc tính (attribute) hoặc phương thức (method).

Khi một thuộc tính hoặc phương thức được khai báo là private, nó chỉ có thể được truy cập từ bên trong cùng một lớp (class).

Đây là cấp độ truy cập của một công cụ sửa đổi riêng tư chỉ nằm trong lớp (Class). Nó không thể được truy cập từ bên ngoài lớp.

Tạo file Test.java

public class Test {
    
    int number;
    
    private Test() {
        number = 50;
    }
    
    public static void main(String[] args) {
        
    	Test result = new Test();
        
        System.out.println(result.number);
        
    }
}

Tiếp theo mình sẽ tạo ra một file là TestNew.java

public class TestNew {
    
    public static void main(String[] args) {
        
    	Test result = new Test();
        
        System.out.println(result.number);
        
    }
}

Khi chạy TestNew.java sẽ xuất hiện một thông báo lỗi.

2. Public trong java là gì?

Trong Java, public là một từ khóa truy cập (access modifier) được sử dụng để xác định phạm vi truy cập của một thuộc tính (attribute), phương thức (method) hoặc lớp (class).

Khi một thuộc tính, phương thức hoặc lớp được khai báo là public, nó có thể được truy cập từ bất kỳ đâu trong chương trình Java, bao gồm cả từ các lớp khác và các package khác.

Public trong Java cho phép truy cập mọi nơi. Bên trong, bên ngoài lớp và package.

Cũng với ví dụ trên giờ thay đổi private Test() thành public Test() và sau đó chạy file TestNew.java.

public-trong-java

Ví dụ khác:

public class MyClass {
    public int age;
    public void displayAge() {
        System.out.println("Age: " + age);
    }
}

Trong ví dụ này, MyClass là một lớp được khai báo là public, vì vậy nó có thể được truy cập từ bất kỳ đâu trong chương trình Java. Lớp này có một thuộc tính age và một phương thức displayAge(), cả hai đều được khai báo là public, nên chúng cũng có thể được truy cập từ bất kỳ đâu trong chương trình Java.

3. Protected trong Java là gì?

Trong Java, protected là một từ khóa truy cập (access modifier) được sử dụng để xác định phạm vi truy cập của một thuộc tính (attribute) hoặc phương thức (method).

Khi một thuộc tính hoặc phương thức được khai báo với từ khóa protected, nó có thể được truy cập từ bên trong cùng một package hoặc từ một lớp con (subclass) ở bất kỳ package nào.

Tuy nhiên, nếu thuộc tính hoặc phương thức được khai báo là protected, các đối tượng khác ngoài package hoặc lớp con sẽ không thể truy cập trực tiếp được. Thay vào đó, các đối tượng này phải sử dụng kế thừa (inheritance) hoặc getter/setter method để truy cập đến thuộc tính hoặc phương thức được khai báo là protected.

Phạm vi truy cập Protected được truy cập bên trong package và bên ngoài package nhưng phải kế thừa (Extends).

Ví dụ:

Bạn sẽ tạo ra 2 package với tên là package1package2.

Trong package1 tạo file Test.java

Trong package2 tạo file TestPackage2.java

Tập tin Test.java với lệnh

package package1;

public class Test {
    
    String name = "Quach Quynh";
    
    protected Test() {
    	System.out.println("Xin chao ban: " + name);
    }
    
}

Và tập tin TestPackage2.java

package package2;

import package1.Test;

public class TestPackage2 extends Test {
    
    public static void main(String[] args) {
        
    	Test obj = new TestPackage2();
        
        System.out.println(obj);
        
    }
}

Protected trong Java

4. Default trong Java

Trong Java, default (hay còn gọi là package-private) là một từ khóa truy cập (access modifier) được sử dụng để xác định phạm vi truy cập của một thuộc tính (attribute), phương thức (method) hoặc lớp (class).

Khi một thuộc tính, phương thức hoặc lớp được khai báo với default modifier, nó chỉ có thể được truy cập từ bên trong cùng một package.

Nếu không xác định bất kỳ từ khóa truy cập nào, Java sẽ tự động đặt một từ khóa truy cập mặc định là default. Điều này có nghĩa là, nếu một thuộc tính, phương thức hoặc lớp không được khai báo với bất kỳ từ khóa truy cập nào, thì nó sẽ chỉ có thể truy cập được từ bên trong cùng một package.

Default là trường hợp mặc định khi bạn không khai báo 3 modifier ở trên. Quyền truy cập Default chỉ được phép truy cập trong cùng package.

Ví dụ:

Tạo file Test.java trong package1

package package1;

public class Test {
    
    protected Test() {
    	System.out.println("Pham vi truy cap default");
    }
    
}

Và một file nữa là Test2.java cũng trong package1

package package1;

public class Test2 {
    
    public static void main(String[] args) {
        Test obj = new Test();
        System.out.println(obj);
    }
}

Default trong Java

Kết thúc bài học về phạm vi truy cập gồm public, private, protected, default có đơn giản không nào. Đây là một phần kiến thức không thể bỏ qua khi tìm hiểu về lập trình hướng đối tượng OOP. Chính vì vậy bạn cần đọc và làm bài tập nhiều hơn.

Related Posts

Next.js – Khám phá Framework JavaScript tuyệt vời cho phát triển ứng dụng web

Giới thiệu về Next.js Next.js là một framework JavaScript mã nguồn mở và phổ biến được sử dụng để xây dựng các ứng dụng web hiệu suất…

Tạo Form đăng ký bằng Javascript

Ghi đè trong java, cách thực hiện chi tiết

Trong lập trình hướng đối tượng, ghi đè là một kỹ thuật cho phép các đối tượng con ghi đè lại phương thức của đối tượng cha…

noi-chuoi-java

Nối chuỗi trong Java

Nối chuỗi trong Java là phương pháp nối hai chuỗi riêng biệt lại với nhau. Bạn có thể sử dụng toán tử (+) hoặc phương thức concat()….

vuejs-la-gi

Vuejs là gì? Tìm hiểu tổng quan về Vue.js

JavaScript là ngôn ngữ lập trình phía Front end có độ phổ biến rất lớn. Hàng loạt Framework Js được ra đời được viết từ nó. Và…

Overriding-java-1

Overriding trong Java

Bài viết này sẽ giúp bạn hiểu về tính đa hình trong Java thông qua Overriding. Nếu bạn đã tìm hiểu về kế thừa lớp sẽ thấy…

javascript

Cách gọi hàm JavaScript trong HTML

Hàm (Functions) trong JavaScript nếu không gọi đến nó sẽ không thực thi chức năng. Vì thế để thực hiện một nhiệm vụ nào đó ở trong…