在主文件中创建java类?

在主文件中创建java类?,java,class,inner-classes,Java,Class,Inner Classes,是否可以在包含main方法的同一文件中创建类?我正在练习的编程竞赛只接受一个文件作为解决方案,所以我不能在单独的文件中编写类并将其发送 我知道您可以创建内部类,但它是否提供与普通类相同的功能?是的,您可以在一个.java文件中定义多个顶级类。看 在大多数情况下,嵌套类也可以工作。您可能希望声明此类类静态,以避免出现错误。您总是有一个类持有main方法,但您也可以将内部类放入此类中 大概是这样的: public class A { protected class B { }

是否可以在包含main方法的同一文件中创建类?我正在练习的编程竞赛只接受一个文件作为解决方案,所以我不能在单独的文件中编写类并将其发送


我知道您可以创建内部类,但它是否提供与普通类相同的功能?

是的,您可以在一个
.java
文件中定义多个顶级类。看


在大多数情况下,嵌套类也可以工作。您可能希望声明此类类
静态
,以避免出现错误。

您总是有一个类持有main方法,但您也可以将内部类放入此类中

大概是这样的:

public class A {

   protected class B {
   }

   public static void main(String[] args){
   }
}

内部类不能有静态方法,因此不能有
main
。但是,静态嵌套类确实可以有
main


另外,正如aix的回答所说,您还可以在同一源文件中拥有多个包私有顶级类。

从编译器的角度来看,在单个源文件中拥有多个类是100%有效的。我经常使用此功能在单屏幕中创建对象层次结构,并在以后将类和接口重构为它们自己的源文件。 请记住,源文件中只有一个类是公共的

public class Runner {
    public static void main(String[] args){
       new A().process();
    }
 }
class A{
    public void process(){
      ...
     }
}

根据定义,内部类是非静态嵌套类。静态嵌套类仅被称为::-)@克里斯·杰斯特·杨:说句公道话,我没意识到我的术语有点不对劲。固定的。