错误: 类Something是公共的, 应在名为 Something.java 的文件中声明

Java编译报错:

错误: 类Something是公共的, 应在名为 Something.java 的文件中声明

如下图所示:

第一种解释: “类A是公共的,应在名为 A.java 的文件中声明”这句话需要分两步来理解

  1、在Java中,如果类A被声明为公共的(public),那么必须将类A保存在名为 A.java的文件中;   2、反之,在一个Xxx.java的文件中最多包含一个顶级的公共类,并且该公共类的名字要与文件名相同。比如文件A.java中,允许定义一个或多个类,但最多允许一个顶级的公共类,此类名为A。 注意:此处强调的顶级的意思是:允许非顶级的公共类存在,如内部公共类(即内部类中的公共类)等。

第二种解释:   这是你的命名错误,把文件名改为 A.java ,因为该文件里面的类是public class A {} ,   要不可以把你这个公共的(public)去掉,那么文件名就可以任意起了。否则文件名就要和类名保持一致。

第三种解释:   一个文件中最多只能有一个类是public的,这样可以暴露类的定义,方便其他类来访问! 如果已经有了这个公共的类 ,那么这个文件名必须和类名相同!  

还要注意:如果只建了一个 .java文件,public只能声明在public static void main(String[] args) {} 前,否则即使定义的public的类名与你声明的java文件的名字一致,也会编译报错。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏锦小年的博客

python学习笔记7.1-内建模块os

Python编程语言优势特点比较突出,已经出现就凭借这些功能优势吸引着开发人员的眼球。在Python这一语言中,有一种标准模块叫做os模块,Python os模...

1976
来自专栏zingpLiu

IO模式和IO多路复用

  网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。

1353
来自专栏北京马哥教育

一线Python运维开发带你秒懂Flask框架

相信曾经纠结过这个问题:怎样才能彻底掌握flask? Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkz...

6386
来自专栏社区的朋友们

深入浅出 Nodejs(四):Nodejs 异步 I/O 机制

本篇教程关于 Nodejs 的异步 I/O ,具体讲异步 I/O 的实现现状、非 I/O 的异步 API 、事件驱动与高性能服务器。

6760
来自专栏Python

python并发编程之多进程理论部分

一 并发与并行   无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cp...

2195
来自专栏coding for love

在线商城项目01-项目初始化简介

会有如下图所示命令提示,一路默认即可。这里值得一说的的是eslint,我选择了standard,这点并不是强制的。你可以选择不使用eslint,也可以使用Sta...

922
来自专栏前端菜鸟变老鸟

sublime VI编辑器 十分钟熟练掌握各种命令

大家都知道,写代码的时候总有许多繁琐的操作,换行、删除一行、复制一行、去到行首、行尾等等。通常情况下是使用鼠标直接点击,这会大大的降低我们的开发效率,因此大家想...

881
来自专栏linux驱动个人学习

Linux源码解析-内核栈与thread_info结构详解

在内核态(比如应用进程执行系统调用)时,进程运行需要自己的堆栈信息(不是原用户空间中的栈),而是使用内核空间中的栈,这个栈就是进程的内核栈

2081
来自专栏章鱼的慢慢技术路

Linux编程_Shell脚本练习题

1866
来自专栏zingpLiu

协程及Python中的协程

协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。(其实并没有说明白~)

1582

扫码关注云+社区

领取腾讯云代金券