为什么java源文件不可以有两个public类

一个源文件可以有多个类,可是只有一个public类,为什么有两个以上就会编译报错,请高手详解.谢谢!... 一个源文件可以有多个类,可是只有一个public类,为什么有两个以上就会编译报错,请高手详解.谢谢! 展开
 我来答
laopin10
2008-11-19 · TA获得超过411个赞
知道答主
回答量:73
采纳率:0%
帮助的人:86.3万
展开全部
简单的说,是由JAVA机制决定的,这是硬性规定,不遵守就会出错。比如C#里就可以在一个源文件里有多个public类,也可以只有一个,这是看各个不同语言所定的规则了。

细究的话,只能说JAVA这个样规定有什么好处呢?
简单地说来,是为了更好地组织代码。

再追究,为什么这样能更好地组织代码呢?这得从JAVA类的访问机制说起了。

JAVA中可以让用户(当你编译好类之后,所有使用这些类的其它类,因为在不同的包中)访问的类只能是public,没有加public 的只有包的访问权限,用户无法访问,这样的类是作为辅助public类的作用出现的,如果不在public类中出现过,那么可以说这些类是没用的。

所以,JAVA就规定一个源文件只能有一个public类,而且文件名必须与它相同,这样一个文件形成了一个功能单元,而不会存在一个文件有很多功能单元这样的混乱局面,这样管理起代码来就有条理多了。

个人理解,希望对你有帮助,如果对访问机制不是很清楚,建意看JAVA方面的基础书.
zxub999
2008-11-19 · TA获得超过310个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:301万
展开全部
源文件的文件名必须和public类的一样,因为一个文件不能同时有两个名称,所以public类只能有一个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老唐日常游戏vlog
2015-05-22 · TA获得超过2103个赞
知道小有建树答主
回答量:1102
采纳率:0%
帮助的人:344万
展开全部
一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必
须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。
java虚拟机实例通过调用某个类的main()来运行一个Java程序,而这个main()必须是public static void 并接收一个字符串数组作为参数,任何拥有这样一个main()的类都可以作为java程序的起点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lihai200816
2008-11-19 · TA获得超过430个赞
知道小有建树答主
回答量:405
采纳率:0%
帮助的人:0
展开全部
这是Java的语法,是人家的定义的,这好比一个句子主语加谓语,你不能改的,你不能说一个句子主语加宾语
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3791919
2008-11-19 · 超过22用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:61.6万
展开全部
同个源文件有多个公共类,编译器就找不到应该执行的main方法了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式