- vừa được xem lúc

Private, Public, Protected và Default trong Java

0 0 17

Người đăng: Phước Quang

Theo Viblo Asia

1. Private, Public, Protected và Default ?

Private, public, protected và default được gọi chung là Access modifier hay còn gọi là từ khóa phạm vi truy cập.

Vậy Access Modifier là gì ?

Access modifier là các "từ" dùng trước các khai báo của một class, biến hay method(phương thức) để thể hiện khả năng truy cập của class, biến hay method đó ở các class khác. Với class ta có 2 loại Access modifier là public và default nhưng với biến và method(phương thức) thì ta có 4 access modifier (public, protected, default, private).

Default: Truy cập trong nội bộ package

Private: Truy cập trong nội bộ lớp

Public: Thành phần công khai, truy cập tự do từ bên ngoài

Protected: Thành phần được bảo vệ, bị hạn chế truy nhập từ bên ngoài

2. Public Access Modifier

Public Access Modifier là có thể truy cập ở bất cứ đâu. Nó có phạm vi rộng nhất trong tất cả Modifier. Một lớp, phương thức, constructor, interface, ... được khai báo public có thể được truy cập từ bất cứ lớp nào khác. Do đó, các trường, phương thức và khối được khai báo bên trong một lớp public có thể được truy cập từ bất kỳ lớp nào trong thế giới Java.

Tuy nhiên, nếu lớp public chúng ta đang cố gắng truy cập là trong một package khác, thì lớp public này vẫn cần được import trước khi truy cập.

3. Private Access Modifier

Các method, biến và constructor khi được khai báo private thì chỉ có thể được truy cập trong chính lớp được khai báo đó.

Private Modifier có phạm vi truy cập mang tính hạn chế nhất. Lớp và interface không thể là private.

Các biến được khai báo private có thể được truy cập bên ngoài lớp nếu như có tạo phương thức public getter cho biến đó tại lớp đó.

Sử dụng Private Access Modifier trong Java là cách chủ yếu để một đối tượng bao đóng chính nó và ẩn dữ liệu với bên ngoài, giúp an toàn dữ liệu với bên ngoài.

4. Protected Access Modifier

Protected Access Modifier là có thể truy cập bên trong package và bên ngoài package nhưng chỉ thông qua tính kế thừa.

Protected Access Modifier không thể áp dụng cho lớp và interface. Các phương thức và trường có thể khai báo protected, tuy nhiên các phương thức và trường trong một interface không thể khai báo là protected.

5. Default Access Modifier

Default Access Modifier nghĩa là chúng ta không khai báo một cách rõ ràng một Access Modifier cho một lớp, trường, phương thức, ... Nói cách khác, nếu bạn không sử dụng bất cứ Modifier nào, thì theo mặc định nó được xem như là default. Default Modifier là chỉ có thể truy cập bên trong package.

Một biến hoặc phương thức được khai báo mà không có bất kỳ Access Modifier nào là có sẵn cho mọi lớp trong cùng package. Các trường này trong một interface là hoàn toàn public static final và các phương thức trong một interface là public theo mặc định.

6. Access Modifier và tính kế thừa trong Java

Qui tắc cần lưu ý và bắt buộc:

Các phương thức được khai báo public trong một lớp cha cũng phải là public trong tất cả lớp con.

Các phương thức được khai báo protected trong một lớp cha phải hoặc là protected hoặc public trong các lớp con; chúng không thể là private.

Các phương thức được khai báo mà không có điều khiển truy cập (không sử dụng modifier nào) có thể được khai báo private trong các lớp con.

Các phương thức được khai báo private không được kế thừa, do đó không có qui tắc nào cho chúng.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 502

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 376

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 421

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414