我可以在Java包中定义多个公共类吗?
不,在一个Java文件中定义多个类时,您需要确保其中只有一个类是公共的。如果一个公共类有多个,则将生成一个编译时错误。
示例
在下面的示例中,我们有两个类Student和AccessData,它们都在同一个类中,并且都声明为public。
import java.util.Scanner; public class Student { private String name; private int age; Student(){ this.name = "Rama"; this.age = 29; } Student(String name, int age){ this.name = name; this.age = age; } public void display() { System.out.println("name: "+this.name); System.out.println("age: "+this.age); } } public class AccessData{ public static void main(String args[]) { //从用户读取值 Scanner sc = new Scanner(System.in); System.out.println("Enter the name of the student: "); String name = sc.nextLine(); System.out.println("Enter the age of the student: "); int age = sc.nextInt(); Student obj1 = new Student(name, age); obj1.display(); Student obj2 = new Student(); obj2.display(); } }
编译时错误
在编译时,以上程序会产生以下编译时错误。
AccessData.java:2: error: class Student is public, should be declared in a file named Student.java public class Student { ^ 1 error
要解决此问题,您需要将一个类转移到一个单独的文件中,或者,
在不包含公共静态voidmain(Stringargs)方法的类之前,删除公共声明。
使用包含main方法的类名来命名文件。
在这种情况下,请在学生类之前取消公众活动。将该文件命名为“AccessData.java”。