首页/新闻资讯/正文详情

详细介绍一下Java中public class和缺省class的区别

发布时间:2026/9/25 6:49:24 来源:云帆数科 栏目:资讯中心
详细介绍一下Java中public class和缺省class的区别
Java public class 与 缺省无修饰符class 完整详细区别前置概念public访问修饰符公共权限缺省类类前面不写任何修饰符既无public、private、protected官方名称为包访问权限 / 包私有权限以下对比只针对顶层类直接写在.java文件中不是方法/类内部的内部类。一、源文件语法强制规则编译直接报错硬性规定1. public class 规则单个.java文件最多只能有1个 public class不能存在多个public修饰的类名必须和当前.java文件名完全相同大小写严格区分示例文件Person.java// 合法publicclassPerson{}// 普通缺省类允许存在多个classTest1{}classTest2{}错误案例文件Person.java写public class User{}→ 编译失败。2. 缺省class规则一个java文件可以写任意多个缺省class数量无限制类名与java文件名无任何绑定叫什么都可以示例Demo.javaclassA{}classB{}classC{}完全合法无编译报错。二、访问权限核心本质区别1. public class权限全局可见任意包都能访问同包其他类直接new使用无需import不同包类通过import 完整包名.类名导入后实例化、继承、调用方法全部正常示例包1com.entity.User.javapackagecom.entity;publicclassUser{}包2com.test.Test.javapackagecom.test;importcom.entity.User;publicclassTest{publicstaticvoidmain(String[]args){UserusernewUser();// 跨包正常使用}}2. 缺省class权限仅当前同一个package包内可见同包类正常创建对象、调用跨包类就算手动import导入也无法实例化、继承直接编译报错示例包1com.entity.Order.javapackagecom.entity;// 缺省类仅限com.entity包内使用classOrder{}包2无法使用Order代码直接报错。三、编译后生成class文件规则Java编译机制每个独立顶层类都会单独生成一份.class字节码文件文件内public class Student→ 生成Student.class文件内缺省类Temp→ 生成Temp.class例Student.javapublicclassStudent{}classHelper{}编译产出两个文件Student.class、Helper.class。两种类在编译产物上无区别只是权限与文件约束不同。四、继承、重写使用限制public class任意包的类都可以extends该类作为父类支持跨包继承、多态缺省class只有同包下的类能继承其他包无法继承该类不能跨包做父类。五、程序入口main方法适配public class把public static void main(String[] args)写在public类中直接执行java 类名是行业标准规范缺省classmain方法可以写在缺省类里运行不会报错但不推荐。原因其他包无法访问该类项目分层后不方便调用启动程序。六、框架反射适配场景Spring、MyBatis等主流框架会通过反射跨包创建类对象Controller、Service、Mapper、实体类必须是public class如果写成缺省class框架跨包反射实例化失败抛出异常。七、适用开发场景区分使用 public class 的场景项目对外提供的实体类、工具类、业务类程序启动类包含main主方法需要跨包继承、被多处调用的父类框架注解类Controller、Service等需要给第三方模块、其他项目调用的公共API类。使用缺省class的场景仅当前包内部使用的辅助工具类临时工具类不需要对外暴露测试专用辅助类仅本包单元测试调用不希望外部包访问、隐藏内部逻辑。八、完整对比表格对比维度public class缺省class无修饰符访问权限所有包全局可见仅同一个包内可见单文件数量最多1个不限数量类名与文件名必须完全一致无任何要求跨包访问import后正常使用跨包直接编译报错跨包继承支持不支持框架反射调用正常实例化反射失败报错工程规范对外业务类标准写法包内隐藏辅助类专用九、高频易错点总结只有顶层类区分public/缺省方法内的内部类不受文件名规则限制private、protected不能修饰顶层类只能修饰成员变量、方法、内部类缺省权限没有关键字不要写成defaultdefault仅用于接口方法、switch分支多人协作项目尽量遵循一个文件一个public类不要大量缺省类堆在同一个文件。

相关推荐

【 AtomCode 全平台安装与启动详细教程】
【 AtomCode 全平台安装与启动详细教程】

AtomCode 全平台安装与启动详细教程(命令行) 一、工具简介 AtomCode 是一款 Rust 编写的终端AI自主编码工具,支持Windows、macOS、Linux三平台,可以通过自然语言自动读写文件、修改代码、执行脚本。程序没有桌面快捷方式&#xff… · 2026/9/25 6:49:19

中小企业 AI 落地实战:2026 年开源方案选型与成本测算
中小企业 AI 落地实战:2026 年开源方案选型与成本测算

"我们公司也想用 AI,但预算有限,怎么做?"——这是今年中小团队最高频的问题。好消息:2026 年的开源生态已经成熟到「堆几台显卡就能搭建一个生产级 AI 系统」的水平。坏消息:选错一个架构反悔成本很高。本文… · 2026/9/19 4:47:16

AI开发复杂项目最优流程|告别一次性生成烂代码,分步落地高质量可维护项目
AI开发复杂项目最优流程|告别一次性生成烂代码,分步落地高质量可维护项目

​ 持续更新。。。。。。。。。。。。。。。 AI开发复杂项目最优流程|告别一次性生成烂代码,分步落地高质量可维护项目 前言导读:很多人用AI开发复杂项目时,习惯一次性把所有需求全盘输入,让AI一键生成完整项目。但最… · 2026/9/20 21:44:13

Atlas 300V Pro部署YOLO全指南:从环境配置到性能调优
Atlas 300V Pro部署YOLO全指南:从环境配置到性能调优

做AI推理部署的兄弟,这几年手里没摸过几块加速卡,出去都不好意思说自己在搞落地。我前前后后折腾过不少硬件,从最早的GPU卡到各种NPU,最近小半年一直在搞基于Atlas平台把YOLO模型搬上生产环境的事。今天就把这块卡——Atlas 300V … · 2026/9/25 6:49:22

tsm-hub:面向生产级智能体的统一运行时网关
tsm-hub:面向生产级智能体的统一运行时网关

1. 项目概述:一个被低估的“智能体中枢”正在悄然成型最近在几个技术社区里反复看到tsm-hub这个名字,它不像 LangChain 或 LlamaIndex 那样铺天盖地宣传,但凡有实际落地经验的团队——尤其是做过 3 个以上 LLM 应用、踩过工具链割裂坑的人——… · 2026/9/25 6:49:22

Atlas 300V 24G推理加速卡部署YOLO全攻略,手把手绕过踩坑
Atlas 300V 24G推理加速卡部署YOLO全攻略,手把手绕过踩坑

后台经常有朋友私信我第一句话就问:“Atlas 300V 24G是运算加速卡吗?能不能跑YOLO?”第二句话往往是:“网上说atlas部署yolo很麻烦,是真的吗?”这两个问题我当年刚拿到这张卡时也反复琢磨过。先说结论&… · 2026/9/25 6:49:16

精益与六西格玛:核心差异与协同应用指南
精益与六西格玛:核心差异与协同应用指南

1. 精益与六西格玛的本质差异在制造业和服务业的质量管理实践中,精益(Lean)和六西格玛(Six Sigma)是两种最常被提及的方法论。虽然它们经常被并列讨论,但两者的核心目标和实施路径存在根本性差异。精益起源… · 2026/9/25 6:49:16

C盘又满了?一文教你修改Windows默认安装路径,彻底告别空间告急
C盘又满了?一文教你修改Windows默认安装路径,彻底告别空间告急

C盘又红了,这句话几乎是我每次帮忙解决电脑问题时的开场白。Win10用户最容易遇到的一种情况是:系统盘明明分了128G甚至256G,软件却老是被默认装进C:\Program Files,Windows商店应用也默认往C盘塞,桌面文件、下载文件、… · 2026/9/25 6:49:16

EndNote完全指南:安装、Word插件、文献库管理与高频故障排查
EndNote完全指南:安装、Word插件、文献库管理与高频故障排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 6:49:16

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码