public class 和 class 的区别

        我们在编写Java程序的时候,例如HelloWorld,我们可以发现HelloWorld类在定义的时候使用了关键字 public,那么一个类声明的时候可以不使用public吗?我们一起来看看它们有什么区别?  

        我们先来进行一个测试,看看Java源文件中是否可以定义多个class,请看下图:

        我们可以看到创建了一个 Test.java 源文件,在该文件中定义了四个类,分别是A类、B类、C类和D类,使用 javac 命令编译之后生成了四个对应的字节码文件,分别是A.class、B.class、C.class和D.class。

    通过以上的测试可以得出几个结论:

        1.一个Java源文件中可以定义多个class。

        2.编译的时候一个class会对应生成一个class字节码文件。

        3.public 的 class 可以没有。

        接下来,我们在Test.java源代码中继续定义一个“公开的类E”,请看下图:

        我们可以看到,定义公开的类E之后,再次编译,编译器报错了,并且提示的错误 信息是:类E是公开的,应在名为E.java的文件中声明。换句话说,在Test.java 文件中定义的公共的类的名字必须是 Test,不能是其它名称。

    这里我们又可以得出几个结论:

        1.如果定义 public class 的类,要求此类名必须和 Java 源文件名保持一致。

        2.也间接说明在同一个 java 文件中公共的类只能有一个(注意:在同一个 java 文件中类名不能重名)。

接下来,我们再对以上程序将进行修改,我们在每一个类的类体当中都定义main方法,都写上程序的入口,看看是否可以编译和运行:

         我们可以看到,在每一个 class 中都可以编写 main 方法,想让程序从哪个入口进去执行则加载该类即可。

    通过以上的测试可以得出:
        任何一个 class 中都可以设定程序入口,也就是说任何一个 class中都可以写 main 方法(主方法),想从哪个入口进去执行,则让类加载器先加载对应的类即可。
         但实际上,对于一个完整的独立的应用来说,只需要提供一个入口,也就是说只需要定义一个 main 方法即可。
        以上只是一个测试,在实际的开发中,虽然一个 java 源文件可以定义多个 class,实际上这是不规范的, 比较规范的写法是一个 java 源文件中只定义一个 class
        (本文仅代表个人观点,不喜勿喷!)
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值