160923基础小结

来源:互联网 发布:app gps数据 运营商 编辑:程序博客网 时间:2024/06/05 02:56

今天看java基础其中有个题为:

1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。答案很容易记住,但是仍不知为啥,深究如下:

《深入jvm第二版》中有这样一句话:java虚拟机实例通过调用某个类的main()来运行一个Java程序,而这个main()必须是publicstatic void 并接收一个字符串数组作为参数,任何拥有这样一个main()的类都可以作为java程序的起点。并没有说拥有main()方法的类一定要是public类。

Test7.java源文件:

 class Test5{int i = 1;} public class Test6{ int i = 2; public static void main(String[] args) {  System.out.println("main method"); }}如果运行Test7.java 报错:C:/javatest>javac Test7.javaTest7.java:8: 类 Test6 是公共的,应在名为 Test6.java 的文件中声明public class Test6
       这里说明了文件名必须与public类的类名一致,(如果文件中有public类)这里可以看出如果有多个public类,那么文件名应该是哪个public类的呢?显然一个java源文件只能有一个public类。所以总结如下:一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译,如果源文件中没有一个public类,则文件名与类中没有一致性要求。至于main()不是必须要放在public类中才能运行程序。

0 0