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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 完美恋爱 高级黑马   /  2013-10-14 15:38  /  1720 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 完美恋爱 于 2013-10-14 18:27 编辑

比如有一个java文件名叫aaa.java
里面的主函数所在的类的类名是这么定义的
class bbb{},名字跟java文件的名字不一样,但是可以编译成功
但是在class前面加个public,编译就失败,这是为什么啊?

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

5 个回复

倒序浏览
java源文件命名规则,如果源文件只有一个类,那么文件名必须与类名相同,如果源文件有多个类,且有一个是public的,那么源文件名必须与这个类名相同。如果源文件有包含多个类且没有public类,那么源文件的名字只要与某个类的名字相同即可。
回复 使用道具 举报
  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

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

回复 使用道具 举报
air 中级黑马 2013-10-14 17:03:16
板凳
你没有认真看视频哦。毕向东老师的视频里有讲,class 前面 如果有public,就是必须保证 类的名称和文件名同样是XXX的意思,没有就随便你怎么命名。
回复 使用道具 举报
air 中级黑马 2013-10-14 17:05:15
报纸
赖波 发表于 2013-10-14 16:35
我的运行可以,不知你的是怎么回事,还是我理解错了
如果是权限的话记住
public  

他的意思是文件名和类名不一样,加了public就会编译失败。可能是常识吧,视频里面没有讲,我也不知道更深的原因是什么
回复 使用道具 举报
看到英文就头疼。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马