我可以在 Java 包中定义多个公共类吗?
java 8object oriented programmingprogramming更新于 2025/11/16 12:28:17
不可以,在单个 Java 文件中定义多个类时,您需要确保其中只有一个类是公共的。如果单个文件中有多个公共类,则会产生编译时错误。
示例
在下面的示例中,我们有两个类 Student 和 AccessData,我们将它们放在同一个类中,并将它们都声明为公共的。
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
要解决此问题,您需要将其中一个类移至单独的文件,或者
删除不包含 public static void main(String args) 方法的类之前的公共声明。
使用包含 main 方法的类名命名文件。
在这种情况下,删除 Student 类之前的公共声明。将文件命名为 “AccessData.java”。

