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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ileslie 中级黑马   /  2016-7-21 20:26  /  509 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Single
{
     private static Single s=new Single();     
     private Single(){}
    public static Single getInstance()
    {
        return s;
    }
}
class Test2
{
    public static void main(String[] agrs)
    {
        Single s1=Single.getInstance();
        Single s2=Single.getInstance();
         System.out.println(s1==s2);
    }
}

我这样写程序报错,但我去掉第一行的public程序就对了,小白实在不解,大家说说这样什么区别?

2 个回复

正序浏览
java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样。 只能有一个public类是为了给类装载器提供方便。 一个public 类只能定义在以它的类名为文件名的文件中。 每个编译单元(文件)都只有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public 类,编译器就会报错。 并且public类的名称必须与文件名相同(严格区分大小写)。 当然一个编译单元内也可以没有public类。 在一个源文件.JAVA文件中可以有很多类,只有一个PUBLIC类其他的都不能是. 在PUBLIC类中找程序的入口 main函数你想想如果很多PUBLIC 类,那程序从何运行呢? 百度的
回复 使用道具 举报
虽然我不知道原因,但是我知道类不放在一个文件不会报错!用eclipse不会报错!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马