public权限通过开放访问边界支持跨包调用,是构建可复用接口的基础:public类需独占同名文件且为跨包入口;public方法暴露稳定功能契约并需javadoc;public字段仅限static final常量,普通字段应封装;public static void main是jvm唯一识别的程序入口。

Java 中 public 权限本身不“提供服务”,而是通过明确开放访问边界,让其他类(无论是否同包)能合法调用你的类、方法或字段——这是构建可复用、可集成的公共接口的基础。
public 类:成为跨包可用的入口点
一个类被声明为 public,就表示它愿意被整个项目甚至外部模块使用。但有硬性规则:
- 该类必须定义在与类名同名的 .java 文件中(例如
public class UserService必须在UserService.java中); - 一个源文件只能有一个 public 类;
- 其他包中的类可通过
import或全限定名(如com.example.UserService)直接使用它。
public 方法:暴露稳定的功能契约
把业务逻辑封装在 public 方法里,是对外提供服务的核心方式:
- 方法签名(名称、参数类型、返回类型)就是接口契约,应保持稳定;
- 建议只暴露必要的功能,避免把内部辅助方法设为 public;
- 配合 Javadoc 注释说明用途、参数含义、异常行为,提升可用性。
public 字段:谨慎使用,通常应封装
直接将字段设为 public 虽然允许外部读写,但会破坏封装性,一般不推荐:
- 除非是真正不变的常量(配合
static final,如public static final int MAX_RETRY = 3;); - 普通数据应设为 private,通过 public 的 getter/setter 控制访问逻辑(例如校验、日志、懒加载);
- 否则外部代码可随意修改状态,导致难以调试和维护。
public + static void main:启动服务的显式入口
Java 程序的运行起点必须是 public static void main(String[] args):
- JVM 只认这个签名,且要求方法为 public 才能从外部调用;
- 它不是“服务接口”,而是程序执行的触发点,常用于启动 Web 容器、定时任务或 CLI 工具;
- 真实服务逻辑应由该方法委托给其他 public 类或 Spring Bean 等组件完成。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











