*.java文件中可以包含多个类,但最多只能有一个类,其修饰符为public。
测试1:文件名Dog.java,文件内容如下:[2个类均为public]
public class Dog{ Dog(){ System.out.println("I'm a dog."); } } public class Cat{ Cat(){ System.out.println("I'm a cat.'"); } }
报错:
测试2:文件名Dog.java或Cat.java,文件内容如下:[2个类均不是public]
class Dog{ Dog(){ System.out.println("I'm a dog."); } } class Cat{ Cat(){ System.out.println("I'm a cat.'"); } }编译成功!
测试3:文件名Dog.java或Cat.java,文件内容如下:[main函数在任意类中]
class Dog{ Dog(){ System.out.println("I'm a dog."); } public static void main(String[] args){ new Dog(); new Cat(); } } class Cat{ Cat(){ System.out.println("I'm a cat."); } }main函数执行成功!
测试4:文件名Dog.java文件内容如下:[main函数在非public类中]
public class Dog{ Dog(){ System.out.println("I'm a dog."); } } class Cat{ Cat(){ System.out.println("I'm a cat."); } public static void main(String[] args){ new Dog(); new Cat(); } }
个人猜测:以上main函数测试,说明不存在main()函数找不到的问题,个人认为,一个*.java对应一个public类是一种较好的代码编写方式。如果
代码编写者希望其某一*.java中包含不止一个public修饰class,他必须将该*.java文件拆分为多个*.java文件才行。
--个人观点,欢迎指教!!!