CSNotesCSNotes
MySQL
Java
SSM
Redis
学习路线
TODO
实用工具
GitHub
MySQL
Java
SSM
Redis
学习路线
TODO
实用工具
GitHub
  • 第一章 Java 基础

    • 一、OOP 三大特性
    • 二、8 种基本数据类型
    • 三、BigDecimal
    • 四、类的访问权限
    • 五、包装类
    • 六、继承
    • 七、多态
    • 八、final 关键字
    • 九、static 关键字
    • 十、抽象类
    • 十一、接口
    • 十二、四种内部类
    • 十三、Lambda+ 函数式接口
    • 十四、枚举 enum
    • 十五、反射
    • 十六、注解
    • 十七、泛型
  • 第二章 集合

    • 一、集合框架总览
    • 二、ArrayList 源码解析
    • 三、LinkedList 源码分析
    • 四、HashSet
    • 五、String 底层结构
    • 六、String 常量池与 equals
    • 七、StringBuffer
    • 八、时间类:4 代演进史
    • 九、Stream 流
    • 十、工具类设计规范
    • 十一、Assert
    • 十二、常用工具类
  • 第三章 设计模式

    • 一、七大设计原则
    • 二、单例模式(饿汉式)
    • 三、装饰器模式
    • 四、策略模式
  • 第四章 异常

    • 一、Java 异常体系
    • 二、异常(完整版)
  • 第五章 并发

    • 一、多线程基础 JUC
    • 二、多线程进阶
    • 三、线程池
  • 第六章 JVM

    • 一、JSON 库
  • 第七章 RPC

    • 一、RPC 定义
  • 第八章 消息队列

    • 一、MQ 业务解耦
  • 第九章 JDK17 新特性

    • JDK17 新特性
    • 项目

四、类的访问权限

为什么 Employee.id 要 private 不能 public?

Java 中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

· default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

default 修饰方法:不可以被重载。

· private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

· public : 对所有类可见。使用对象:类、接口、变量、方法

· protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

我们可以通过以下表来说明访问权限:

修饰符当前类同一包内子孙类 (同一包)子孙类 (不同包)其他包
publicYYYYY
protectedYYYY/NN
defaultYYYNN
privateYNNNN

(一)类的访问修饰符

类只能用 default 和 public 修饰。

image-20240726210825687
image-20240726210825687
image-20240726210907245
image-20240726210907245

default 也叫 package-private,意思是只对包内可见

(二)方法的访问修饰符

public:所有地方都能调用

protected:同一个包的类可以调用。不同包的类,只有继承才可以调用

default:包内可以调用

private:类内部可以调用

比如说把一个项目比做一个公司,包比作一个部门。public 就相当于所有人都能看。private 相当于你自己能看。default 表示只有部门内能看。protected 表示同一个部门能看,不同的部门,只有下级才能看。

编辑此页
上次更新: 2026/9/26 19:31
Prev
三、BigDecimal
Next
五、包装类