【问题标题】:Creating a java class within the main file?在主文件中创建一个java类?
【发布时间】:2011-07-19 05:28:23
【问题描述】:

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

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

【问题讨论】:

    标签: java class inner-classes


    【解决方案1】:

    是的,您可以在单个 .java 文件中定义多个顶级类。见Java: Multiple class declarations in one file

    对于大多数用途,嵌套类应该也能正常工作。您可能需要声明此类static 以避免implicit reference to the outer class

    【讨论】:

    • 根据定义,内部类是非静态嵌套类。静态嵌套类就是这样称呼的。 :-)
    • @Chris Jester-Young:公平点,我没有意识到我的术语有点不对劲。固定。
    【解决方案2】:

    你总是有一个持有 main 方法的类,但你也可以将内部类放入这个类中。

    类似这样的:

    public class A {
    
       protected class B {
       }
    
       public static void main(String[] args){
       }
    }
    

    【讨论】:

      【解决方案3】:

      内部类不能有静态方法,所以你不能在那里有main。不过静态嵌套类确实可以有main

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-02
          • 2017-09-14
          • 1970-01-01
          • 2014-02-18
          • 2011-03-08
          • 2021-09-09
          • 2010-11-08
          • 1970-01-01
          相关资源
          最近更新 更多