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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东梁 中级黑马   /  2014-4-17 21:03  /  4884 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package cn.itcast.linkedhashset;

  2. public class LinkedHashSetDemo {

  3.         public static void main(String[] args) {

  4.                
  5.                
  6.         }

  7. }
  8. public class MyStrack{//MyStrack报错
  9.        
  10. }
复制代码


为什么同一个包里两个public类,会报错?

11 个回复

倒序浏览
一个类只能有一个public,这个在视频中老师是讲过的,你可以把MyStrack类前的public 去掉就不报错了
回复 使用道具 举报
这个肯定的。。。同一个包里中,只能有一个public
回复 使用道具 举报
因为只能有一个入口......同个源文件有多个公共类,编译器就找不到应该执行的main方法了
回复 使用道具 举报
1. 每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。
2. public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。所以对于public class Demo而言,文件的名称必须是Demo.java, 而不是demo.java或DEMO.java。如果不匹配,同样将得到编译时错误。
3.编译单元内也可完全不带public类的。这种情况下,可以随意对文件命名

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

回复 使用道具 举报
可以多个public方法!!
回复 使用道具 举报
这个肯定的啊,一个类只允许一个public
回复 使用道具 举报
同一个包里是可以有多个源文件的,每个源文件中只能有一个被public修饰的类,而此时源文件的名字必须与被public修饰的类同名。若是每个源文件中有多个被public修饰的类,而源文件的名字又是唯一的,这样会冲突。如果想要用public修饰多个类,可以将每个需要被public修饰的类分散到多个不同的源文件中就可以了,这些源文件可以在同一个包里。
回复 使用道具 举报
一个类中只能有一个类 是public的 并且命名时 必须以这个类 起名
回复 使用道具 举报
public 修饰的类也就是公共类,文件名必须与public所修饰的类名相同,如果出现多个public的话,那么文件名到第和谁的相同呢?所以就会出现错误提示。
回复 使用道具 举报
学习学习 路过~
回复 使用道具 举报
一个源文件只能有一个public修饰的类,而且public修饰的类类名必须和源文件名一样。
对源文件编译后,源文件有几个类,就会生成几个对应的.class类文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马