Access Modifiers cho Reference (Class, Interface, Enum)

Danh sách như sau

  • public: nếu có access modifier này thì tên file phải trùng tên class hoặc interface, enum, đuôi .java (Còn gọi là top-level)
  • protected: Dùng được khi là nested type
  • private: Dùng được khi là nested type
  • (không chỉ định, default): trong cùng package có thể truy cập

Một số access modifier khác

ModifierClassInterfaceEnum
abstractphải được implement trước khi sử dụng (extends, anonymous)không cần thiết nhưng không lỗi compileKhông được phép
statickhông được phép cho class top-level không được phép cho interface top-level
Không cần thiết với inner interface nhưng không lỗi compile
không được phép cho enum top-level
Không cần thiết với inner enum nhưng không lỗi compile
finalđược phép (không cho phép kế thừa)không được phépkhông được phép
strictfpcho phép (liên quan đến floating-point), bất cứ thành phần nào sử dụng float, double sẽ có ảnh hưởngđược phépđược phép

Một số trường hợp dùng access modifier lỗi

CodeGiải thích
private final class Test{}private không được phép cho top-level
protected abstract class Test{}tương tự với private
final abstract class Test{}không được phép kết hợp abstract với final
static final class Test{}static không được phép cho top-level
final public final class Test{}duplicate modifier

Để lại một bình luận

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 *