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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 帅哥哥 于 2014-4-5 14:04 编辑

哪位大大给细致的总结一下啊,我这儿有点儿乱。。。
重点解释一下public class Demo为什么文件名要与类名完全一致啊,那要是源文件中有几个类是public的,文件名用哪个类名啊

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

6 个回复

倒序浏览
主文档名必须和类名相同,而且该类还必须是public的,因为JVM启动就是去找public static void main(String args[]){....}  如果有多个入口你让JVM咋开始。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
骑猪追大象 发表于 2014-4-5 00:47
主文档名必须和类名相同,而且该类还必须是public的,因为JVM启动就是去找public static void main(String  ...

可是一个源文件中有多个类的话,编译会生成多个.class文件的啊,这个文件能不能运行取决于这个.class文件有没有main函数,不是这么理解吗。。。编译和JVM没有关系的吧,运行的时候才启动JVM吧,而运行的时候运行的是.class文件。。。
回复 使用道具 举报
你想想包的原理,当产生很多class文件时是不是JVM去环境变量下去找相应文件,如果class文件中没有main入口是不能【单独】执行的,但是JVM会先找main   当用到其他类时会按照包/当前目录(path下)去找相应的对象
回复 使用道具 举报
(1)源文件名必须和public的类名一致这是规定
(2)一个源文件中只允许有一个public的类,其它的都是默认类型(default)
(3)一个源文件中可以没有public的类,这时源文件的名称任意起,只要符合命名规范即可

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
java程序的本质 就是那些.class文件 .java的文件其实就是单纯的文本
jre(java虚拟机)只能加载.class文件
你在输入 java class名 这个命令的实际意义其实是调用class名的mian方法
上边说的其实不全面..这个打字说真的很费劲...更关键的是 你研究这个完全没意义 这都是死记硬背的东西 你只要记住必须这么做 研究具体的意义没意义
至于public class 和class的区别
既然学java 你应该知道java api 这个把
里边有好多的类 这些类是哪来的??? 当然是别人写的了
要调用别人写的类(或者反过来叫别人调用你写的类) 这个被调用的类必须是public的
如果不是就不能调用(或者被别人调用)
.public的方法和变量也是一个道理

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
我自己查了写资料,明白一件事儿,好多东西其实说到底就是俩字儿---“规定”。。。好吧就此结题!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马