自己编代码时发生这样一个问题,下面两段代码除了类名称外都一样,不过第一个编译成功,第二个必须把类之前的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();
}
}
|
|