A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题。
为什么只能包含一个?

6 个回复

倒序浏览
错了 是一个程序中只能包含一个main类
回复 使用道具 举报
紫缘ぶ逸影 发表于 2014-10-21 19:19
错了 是一个程序中只能包含一个main类

我的意思是在一个java文件里面定义两个类,然后这两个类都用public修饰的话编译会报错
回复 使用道具 举报
java程序是从一个public类的main函数开始执行的,     只能有一个public类是为了给类装载器提供方便。     一个public   类只能定义在以它的类名为文件名的文件中。

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
public 类的类名  必须跟文件的名字相同 所以2个public类时 肯定有一个是不同的啊 肯定报错

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
因为声明为public的类必须与文件名保持一致!两个public类会有冲突!
回复 使用道具 举报
颜仔 中级黑马 2014-10-22 19:02:24
7#
当主类用public修饰时,主类相应的文件名也必须用类名来取名字。如果,主类没有用public则文件名可以是任意的。
public修饰类是为了给类加载器提供方便,类加载器运行时会生成以类名为文件名的字节码文件,如果类中定义两个public类时,java虚拟机运行的时候到底以哪个为入口,虚拟机不知道,所以会报错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马