Java | 一个".java"源文件中是否可以包括多个类(不包括内部类)

第一种情况:(有public)

定义一个java源文件(Hello.java),里面只有一个类:

public class Hello {
    public static void main(string[] args){
        System.out.println("Hello World!");
    }
}

通过编译后生成了一个字节码文件:

public 类和文件名相同,所以生成的字节码文件也为Hello.class

第二种情况:(无public)

定义一个java源文件(Hello.java),里面只有一个类(没有public类),类名为World:

class World {
    public static void main(string[] args){
        System.out.println("Hello World!");
    }
}

通过编译后生成了一个字节码文件:

  • 没有pulic类,类名也和文件名不相同,但是编译没有报错,也生成了.class文件,只不过,.class文件名和里面的类的名字相同。为 World.class

第三种情况:(前两种情况都有)

通过前面的两个类例子可以发现,有public 的类, 和没有 public 的类都可以编译出来字节码文件,那么一个类里面两种情况都有会出现什么情况?
编写一个Java源文件,Hello.java,结合以上两种情况:

public class Hello {
    public static void main(string[] args){
        System.out.println("Hello World!");
    }
}
class World {
    public static void main(string[] args){
        System.out.println("Hello World!");
    }
}
  • 有多个类的时候,public 类的类名必须和文件名相同。

通过编译后生成了两个字节码文件:

  • 生成的class文件和类里面的java类的名字相同。


关注公众号,随时获取最新资讯

细节决定成败!
个人愚见,如有不对,恳请斧正!

posted @ 2020-02-14 17:11  一点浩然气~  阅读(567)  评论(0编辑  收藏  举报