错误-主文件java中至少需要一个公共类?

错误-主文件java中至少需要一个公共类?,java,Java,我的代码: class Emp {} class Manager extends Emp{} class Director extends Manager {} class Test{ public static void main(String[] args) { Emp e = new Emp(); Director d = new Director(); System.out.println(e instanceof Object);

我的代码:

class Emp {} 
class Manager extends Emp{}
class Director extends Manager {} 
class Test{
     public static void main(String[] args) {
          Emp e = new Emp(); Director d = new Director();
          System.out.println(e instanceof Object); 
          System.out.println(d instanceof Object); 
          System.out.println(d instanceof Director); 
          System.out.println(d instanceof Manager); 
          System.out.println(d instanceof Emp); 
     }
}
true
true
true
true
true
所需输出:

class Emp {} 
class Manager extends Emp{}
class Director extends Manager {} 
class Test{
     public static void main(String[] args) {
          Emp e = new Emp(); Director d = new Director();
          System.out.println(e instanceof Object); 
          System.out.println(d instanceof Object); 
          System.out.println(d instanceof Director); 
          System.out.println(d instanceof Manager); 
          System.out.println(d instanceof Emp); 
     }
}
true
true
true
true
true
实际输出:
错误-主文件java中至少需要一个公共类?

如错误消息所示,将主类的签名设置为公共

 public class Test{
。。。
当然要把它放在测试中。java

只需在你的课堂前编写public即可

public class Test

提供的代码非常好。看到它工作

您似乎遗漏了一些其他信息,并且没有提供一些其他可能对本例有帮助的信息

您似乎正在将
测试
类放入
中。如果是,请执行以下操作:

class Emp {} 
class Manager extends Emp{}
class Director extends Manager {} 
class Test{
     public static void main(String[] args) {
          Emp e = new Emp(); Director d = new Director();
          System.out.println(e instanceof Object); 
          System.out.println(d instanceof Object); 
          System.out.println(d instanceof Director); 
          System.out.println(d instanceof Manager); 
          System.out.println(d instanceof Emp); 
     }
}
true
true
true
true
true
  • 测试
    类的可见性更改为公共,即
    公共类测试
  • 将文件另存为
    Test.java

此代码编译并运行良好。这看起来不像是真正的错误消息。它看起来像是来自编译和运行它的环境的错误消息,例如您的IDE。命名类
Test
并将其保存在
Test.java
中不会起作用,应该是Test.java。应该指出的是,如果这解决了问题,这是因为OP对IDE的选择对代码做了额外的限制。Java本身非常乐意从非公共类运行
main
。包含
main
的类不必是公共类。可能是用户的IDE找不到主类,因为他没有告诉IDE主类的名称。