黑马程序员技术交流社区

标题: 同一个包里两个public类怎么报错? [打印本页]

作者: 李东梁    时间: 2014-4-17 21:03
标题: 同一个包里两个public类怎么报错?
  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类,会报错?
作者: Silent_memory    时间: 2014-4-17 21:24
一个类只能有一个public,这个在视频中老师是讲过的,你可以把MyStrack类前的public 去掉就不报错了
作者: 向阳泪无痕    时间: 2014-4-17 22:30
这个肯定的。。。同一个包里中,只能有一个public
作者: 闯天涯    时间: 2014-4-17 22:43
因为只能有一个入口......同个源文件有多个公共类,编译器就找不到应该执行的main方法了
作者: 苍穹的雨    时间: 2014-4-18 11:00
1. 每个编译单元(文件)都只能有一个public类。这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出出错信息。
2. public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。所以对于public class Demo而言,文件的名称必须是Demo.java, 而不是demo.java或DEMO.java。如果不匹配,同样将得到编译时错误。
3.编译单元内也可完全不带public类的。这种情况下,可以随意对文件命名
作者: ytblght55    时间: 2014-4-18 11:17
可以多个public方法!!
作者: 元亨利贞    时间: 2014-4-18 22:53
这个肯定的啊,一个类只允许一个public
作者: 谢振宣    时间: 2014-4-19 01:57
同一个包里是可以有多个源文件的,每个源文件中只能有一个被public修饰的类,而此时源文件的名字必须与被public修饰的类同名。若是每个源文件中有多个被public修饰的类,而源文件的名字又是唯一的,这样会冲突。如果想要用public修饰多个类,可以将每个需要被public修饰的类分散到多个不同的源文件中就可以了,这些源文件可以在同一个包里。
作者: 微笑=.一瞬间    时间: 2014-4-20 13:04
一个类中只能有一个类 是public的 并且命名时 必须以这个类 起名
作者: 秦久启    时间: 2014-4-21 12:05
public 修饰的类也就是公共类,文件名必须与public所修饰的类名相同,如果出现多个public的话,那么文件名到第和谁的相同呢?所以就会出现错误提示。
作者: 酱油炒饭    时间: 2014-4-29 16:33
学习学习 路过~
作者: linhy1983    时间: 2014-5-1 11:25
一个源文件只能有一个public修饰的类,而且public修饰的类类名必须和源文件名一样。
对源文件编译后,源文件有几个类,就会生成几个对应的.class类文件




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