VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

Java Cơ Bản

Java là gì? Lịch sử Java Các tính năng của Java Cài đặt môi trường Java (cho người mới bắt đầu) Thiết lập PATH cho java Chương trình Hello World JDK, JRE và JVM Biến trong java Các kiểu dữ liệu trong java Ép kiểu (Type casting) Các toán tử trong Java Hệ thống Unicode trong java

Câu Lệnh Điều Khiển

Mệnh đề If-else Mệnh đề Switch-case Vòng lặp For Vòng lặp While Vòng lặp Do-While Break trong java Continue trong java Chương trình java kinh điển

Các Tính Chất Của Java OOPs

Tính đóng gói trong java Tính kế thừa trong java Tính đa hình trong java Nạp chồng phương thức Ghi đè phương thức Overloading vs Overriding

Các Khái Niệm Java OOPs

Tổng quan java OOPs Lớp và đối tượng Package trong java Constructor trong java Từ khóa this trong java Từ khóa super trong java Từ khóa final trong java Từ khóa static trong java Access Modifier trong java Abstract class trong java Interface trong java Abstract vs Interface trong java Lớp Object trong java Object Cloning trong java equals() và hashCode() Array (mảng) trong java Khai báo mảng trong java Duyệt mảng trong java Lớp Wrapper trong java Đệ quy trong java Truyền giá trị và tham chiếu trong java Toán tử instanceof trong java Sử dụng regex trong java

Mô Hình MVC

Mô hình MVC là gì? - Ví dụ login sử dụng mô hình MVC trong Java

Java Programs

Tính giai thừa trong java Check số nguyên tố trong java Dãy số Fibonacci trong java Chuyển đổi hệ cơ số trong java Liệt kê n số nguyên tố đầu tiên trong Java
Java String Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java AWT Java Swing Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Java Math Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Access Modifier trong Java


Từ khóa static trong java
Lớp abstract trong java

Có hai loại Access Modifier trong Java, đó là: Access Modifier và Non-access Modifier.

Access Modifer trong Java xác định phạm vi có thể truy cập của biến, phương thức, constructor hoặc lớp.

Trong java, có 4 phạm vi truy cập của Access Modifier như sau:

  1. private
  2. default
  3. protected
  4. public

Ngoài ra, còn có nhiều Non-access Modifier như static, abstract, synchronized, native, volatile, transient,...
Bài này chúng ta sẽ tìm hiểu về các Access Modifier.


Nội dung chính

  • Tổng quan về Access Modifier trong java
  • 1. Phạm vi truy cập private
  • 2. Phạm vi truy cập default
  • 3. Phạm vi truy cập protected
  • 4. Phạm vi truy cập public

Tổng quan về Access Modifier trong java

Bảng dưới đây mô tả khả năng truy cập của các Access Modifier trong java:

Access Modifier Trong lớp Trong package Ngoài package bởi lớp con Ngoài package
Private Y N N N
Default Y Y N N
Protected Y Y Y N
Public Y Y Y Y

Hình ảnh minh họa:

Ảnh minh họa access modifier trong java

1. Phạm vi truy cập private

Private Access Modifier chỉ được truy cập trong phạm vi lớp.

Ví dụ về private access modifier trong java

Trong ví dụ, chúng ta tạo 2 lớp A và Simple. Lớp A chứa biến và phương thức được khai bao là private. Chúng ta cố gắng truy cập chúng từ bên ngoài lớp A. Điều này dẫn đến Compile time error:

class A {
    private int data = 40;

    private void msg() {
        System.out.println("Hello java");
    }
}

public class Simple {
    public static void main(String args[]) {
        A obj = new A();
        System.out.println(obj.data);// Compile Time Error
        obj.msg();// Compile Time Error
    }
}

Vai trò của Private Constructor

Nếu bạn tạo bất kỳ constructor là private trong lớp, bạn sẽ không thể tạo instance của class bên ngoài nó. Ví dụ:

class A {
    private A() {
    }//private constructor

    public void msg() {
        System.out.println("Hello java");
    }
}

public class Simple {
    public static void main(String args[]) {
        A obj = new A();//Compile Time Error
    }
}
Chú ý: Một lớp không thể là private hoặc protected, ngoại trừ lớp lồng nhau.

2. Phạm vi truy cập default

Nếu bạn không khai báo modifier nào, thì nó chính là trường hợp mặc định. Default Access Modifier là chỉ được phép truy cập trong cùng package.

Ví dụ về Default Access Modifier trong Java

// Lưu file với tên A.java
package vn.viettuts.demo;

class A {
    void msg() {
        System.out.println("Hello");
    }
}
// Lưu file với tên B.java
package vn.viettuts.mypack;

import vn.viettuts.demo.*;

public class B {
    public static void main(String args[]) {
        A obj = new A(); // Compile Time Error  
        obj.msg();       // Compile Time Error  
    }
}

Trong ví dụ trên, phạm vi truy cập của lớp A và phương thức của msg() của nó là mặc định nên chúng không thể được truy cập từ bên ngoài package.



3. Phạm vi truy cập protected

Protected access modifier được truy cập bên trong package và bên ngoài package nhưng phải kế thừa.

Protected access modifier có thể được áp dụng cho biến, phương thức, constructor. Nó không thể áp dụng cho lớp.

Ví dụ về protected access modifier trong Java:

// Lưu file với tên A.java
package vn.viettuts.demo;

public class A {
    protected void msg() {
        System.out.println("Hello");
    }
}
// Lưu file với tên B.java
package vn.viettuts.mypack;

import vn.viettuts.demo.*;

public class B extends A {
    public static void main(String args[]) {
        B obj = new B();  
        obj.msg(); 
    }
}

Kết quả:

Hello

4. Phạm vi truy cập public

Public access modifier được truy cập ở mọi nơi.

Ví dụ về public access modifier trong java:

// Lưu file với tên A.java
package vn.viettuts.demo;

public class A {
    public void msg() {
        System.out.println("Hello");
    }
}
// Lưu file với tên B.java
package vn.viettuts.mypack;

import vn.viettuts.demo.*;

public class B {
    public static void main(String args[]) {
        A obj = new A();
        obj.msg();
    }
}

Kết quả:

Hello

Từ khóa static trong java
Lớp abstract trong java

Bài viết liên quan:

  • Từ khóa this trong java
  • Từ khóa super trong java
  • Từ khóa final trong java
  • Từ khóa static trong java
  • Access Modifier trong Java
  • Tính đóng gói trong java
  • Tính kế thừa trong java
  • Tính đa hình trong java

Recent Updates

Sắp Tết 2024 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2024?Java Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaBài tập quản lý sinh viên trong JavaHashSet trong java

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml