黑马程序员技术交流社区

标题: 有一个小问题请解答 [打印本页]

作者: 完美恋爱    时间: 2013-10-14 15:38
标题: 有一个小问题请解答
本帖最后由 完美恋爱 于 2013-10-14 18:27 编辑

比如有一个java文件名叫aaa.java
里面的主函数所在的类的类名是这么定义的
class bbb{},名字跟java文件的名字不一样,但是可以编译成功
但是在class前面加个public,编译就失败,这是为什么啊?
作者: 郑齐育    时间: 2013-10-14 15:48
java源文件命名规则,如果源文件只有一个类,那么文件名必须与类名相同,如果源文件有多个类,且有一个是public的,那么源文件名必须与这个类名相同。如果源文件有包含多个类且没有public类,那么源文件的名字只要与某个类的名字相同即可。
作者: 赖波    时间: 2013-10-14 16:35
  1. class Test {
  2.          public class Test1{
  3.                  int a=6;
  4.          }
  5.          public static void main(String []args){
  6.                  Test1 t1=new Test().new Test1();
  7.                  System.out.println(t1.a);
  8.          }
  9. }
复制代码
我的运行可以,不知你的是怎么回事,还是我理解错了
如果是权限的话记住
public  
>包类型的,即默认类型
>protected
>private
作者: air    时间: 2013-10-14 17:03
你没有认真看视频哦。毕向东老师的视频里有讲,class 前面 如果有public,就是必须保证 类的名称和文件名同样是XXX的意思,没有就随便你怎么命名。
作者: air    时间: 2013-10-14 17:05
赖波 发表于 2013-10-14 16:35
我的运行可以,不知你的是怎么回事,还是我理解错了
如果是权限的话记住
public  

他的意思是文件名和类名不一样,加了public就会编译失败。可能是常识吧,视频里面没有讲,我也不知道更深的原因是什么
作者: 小周务商    时间: 2013-10-14 17:05
看到英文就头疼。。。。




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