黑马程序员技术交流社区
标题:
请问一下代码编译过程中遇到加public编译不通过的问题
[打印本页]
作者:
yumin
时间:
2015-1-11 02:38
标题:
请问一下代码编译过程中遇到加public编译不通过的问题
自己编代码时发生这样一个问题,下面两段代码除了类名称外都一样,不过第一个编译成功,第二个必须把类之前的public去掉才能编译,弄不明白为什么这样?
第一段,可以编译通过。
public class Test7
{
private static Test7 s = null;
private Test7(){}//构建函数
public static Test7 getInstance()
{
if(s==null)
{
synchronized(Test7.class)
{
if(s==null) //假如没有创建对象则创建对象
s = new Test7();
}
}
return s;
}
public static void sop(Object obj)//打印数据,封装为函数,方便调用
{
System.out.println(obj);
}
public static void spp()//打印数据,封装为函数,方便调用
{
System.out.println("使用对象");
}
}
class Test//调用单例中的功能
{
public static void main(String[] args)
{
Test7.sop("结果");
Test7.spp();
}
}
第二段: 必须去掉public才可以编译通过
class Test07
{
private static Test07 s = null;
private Test07(){}//构建函数
public static Test07 getInstance()
{
if(s==null)
{
synchronized(Test07.class)
{
if(s==null) //假如没有创建对象则创建对象
s = new Test07();
}
}
return s;
}
public static void sop(Object obj)//打印数据,封装为函数,方便调用
{
System.out.println(obj);
}
public static void spp()//打印数据,封装为函数,方便调用
{
System.out.println("使用对象");
}
}
class Test7//调用单例中的功能
{
public static void main(String[] args)
{
Test07.sop("结果");
Test07.spp();
}
}
作者:
lgn187
时间:
2015-1-11 03:04
应该是类名的问题,Java中的源代码文件需要与public类名相同。
也就是说你一个源代码文件中只能有一个public类,且必须类名为文件名。
你第一段源代码的文件名肯定是Test7.java,而第二个源代码的文件名和public修饰的类名不同,导致编译无法通过。
作者:
yumin
时间:
2015-1-11 12:40
lgn187 发表于 2015-1-11 03:04
应该是类名的问题,Java中的源代码文件需要与public类名相同。
也就是说你一个源代码文件中只能有一个publi ...
O(∩_∩)O谢谢
作者:
yumin
时间:
2015-1-11 12:42
O(∩_∩)O谢谢
作者:
吕勇
时间:
2015-1-11 13:11
楼上已说清楚了,不过想要两个类都有public修饰的话,只能写成两个.java文件咯!
作者:
jiangwenjun
时间:
2015-1-11 21:13
呵呵 我有懂了 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2