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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @ne_pie尒ce 中级黑马   /  2013-11-8 18:46  /  1201 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Something类的文件名叫OtherThing.java
class Something {
   
private static void main(String[] args){        
        System.out.println("Dosomething ...");
    }
}
这里为什么类名可以与java文件名不同呢?
为什么使用private,不用public程序也可以运行呢?



评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
从来没有人说过Java 的Class 名字必须和其文件名相同。
但public class 的名字必须和文件名相同。
为什么使用private,不用public程序也可以运行呢?
我的Eclipse如果将main声明为private,这个类就运行不了,右击类名只有run configurations选项,不知道你是运行的哪个类;

评分

参与人数 1黑马币 +5 收起 理由
乔兵 + 5

查看全部评分

回复 使用道具 举报
你的程序中只要定义的类是public修饰的话,那么文件名就必须和这个类名一致!当然你可以在一个程序中定义多个类,但是程序中只能有一个类是public 修饰的,,OK!
回复 使用道具 举报
~﹏~ 发表于 2013-11-8 20:22
从来没有人说过Java 的Class 名字必须和其文件名相同。
但public class 的名字必须和文件名相同。
为什么使 ...

我运行成别的类了,改成private修饰就找不到Something类了,不知道为什么
回复 使用道具 举报
因为Something类并没有被public修饰符修饰,而是用默认修饰符修饰的,所以源文件名称可以不与类名相同。因为编译时,会生成和类名相同的.class文件。真正执行的是Something.class文件。如果Something类是public修饰的,那么源文件名就应该是Something.java。
如果Something类中的main方法的修饰符改成private,就不可能被java虚拟机执行。因为java虚拟机只识别固定格式的main方法!你改了修饰符,程序也可以运行,那么程序的入口应该在别的类中,虚拟机绝对不可能识别private修饰的main方法!

评分

参与人数 1技术分 +1 收起 理由
To + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马