黑马程序员技术交流社区

标题: 为什么Eclipse里面只能有一个public类啊 [打印本页]

作者: yibuhuiba    时间: 2016-11-26 07:52
标题: 为什么Eclipse里面只能有一个public类啊
为什么Eclipse里面只能有一个public类啊
作者: liudan    时间: 2016-11-26 09:41
java中规定 文件名必须和public修饰的类名  一致,如果有多个pulic注释的类,那么这个文件名属于哪个类呢?从jvm的安全设计考虑,一个class文件中只提供一个接口,我想这也是为什么只能有一个public修饰的类吧。

作者: kevin0    时间: 2016-11-26 11:28
可以有多个,要到函数那里

作者: yibuhuiba    时间: 2016-11-26 16:13
kevin0 发表于 2016-11-26 11:28
可以有多个,要到函数那里

没听明白
作者: kevin0    时间: 2016-11-26 18:46
yibuhuiba 发表于 2016-11-26 16:13
没听明白

你学到函数那里就知道了,可以有多个修饰符,手冷,你可以私信

作者: 王大宝    时间: 2016-11-26 20:00
没有为什么,规定就是这样,写多了就报错

作者: 1413157322    时间: 2016-11-26 22:31
你是说在同一个.java源文件里有两个类然后只能有一个是用public修饰?
作者: 1413157322    时间: 2016-11-26 22:43
本帖最后由 1413157322 于 2016-11-26 22:45 编辑

java源文件中可以有多个类,但只能有一个public类,并且public的类名必须与文件名一致
1、每个编译单元(文件)只能有一个public 类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public 类来表示。你可以根据需要,往这个文件里面添加任意多个提供辅助功能的package 权限的类。但是如果这个编译单元里面有两个或两个以上的public 类的话,编译器就会报错。
2. public 类的名字必须和这个编译单元的文件名完全相同,包括大小写。所以对Widget 类,文件名必须是Widget.java,不能是widget.java 或WIDGET.java。如果你不遵守,编译器又要报错了。
3. 编译单元里面可以没有public 类,虽然这种情况不常见,但却是可以的。这时,你就能随意为文件起名字了。
作者: yibuhuiba    时间: 2016-11-27 12:26
1413157322 发表于 2016-11-26 22:43
java源文件中可以有多个类,但只能有一个public类,并且public的类名必须与文件名一致
1、每个编译单元(文 ...

不明觉厉啊
作者: yibuhuiba    时间: 2016-11-27 12:30
1413157322 发表于 2016-11-26 22:31
你是说在同一个.java源文件里有两个类然后只能有一个是用public修饰?

是的啊
作者: yibuhuiba    时间: 2016-11-27 12:34
kevin0 发表于 2016-11-26 18:46
你学到函数那里就知道了,可以有多个修饰符,手冷,你可以私信

谢谢啦!
作者: huwenkai    时间: 2016-11-27 17:34
可以有多个,但是要是内部类,就是要在第一个public类里面定义
作者: kevin0    时间: 2016-11-27 19:32
huwenkai 发表于 2016-11-27 17:34
可以有多个,但是要是内部类,就是要在第一个public类里面定义

是并列关系,但是main函数是作为程序入口必须放在第一个,





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2