外部类的Java单个文件

问题描述

我相信Java的方法是将外部类保留在单独的文件中。因此,我最终得到了类似于以下的目录结构

/main/main.java
/main/libs/class01.java
/main/libs/class02.java
/main/libs/class03.java

那会很好,但是某些类确实是微不足道的小东西,例如,如果所有类都只是

package libs;
import java.util.*;
public class class01 {

    public Integer idno;
    public String name;

    public class01() {}
        idno = 1;
        name = "First";
    }

}

然后,单独的文件似乎会变得过多。我想知道是否有一种方法可以将它们组合成一个文件,类似于在.Net C#中使用类似以下名称间的方法

using System;
using System.Data;

namespace allClasses {

    public class class01 {

        public Integer idno;
        public String name;

        public class01() {}
            idno = 1;
            name = "First";
        }

    }

    public class class02 {

        public Integer idno;
        public String name;

        public class02() {}
            idno = 2;
            name = "Second";
        }

    }

    public class class03 {

        public Integer idno;
        public String name;

        public class03() {}
            idno = 2;
            name = "Third";
        }

    }

}

我可以在主机中使用它们,好像它们都是分开的

using System;

using allClasses;

namespace main_module {

    class main {

        static void Main(string[] args) {

            class01 newClass01 = new class01();
            class02 newClass02 = new class02();
            class03 newClass03 = new class03();

        }

    }

}

我很抱歉将两者进行比较,因为.Net C#是我可以展示自己想要达到的目标的最佳示例。我还不知道使用Java可以做到这一点的方法,非常感谢一些指导

解决方法

您可以在另一个公共类中将它们声明为public static class。 例如

public class Util {
  public static class A {}
  public static class B {}
}

然后在您的主类中,您可以将它们引用为:

new Util.A();

这将帮助您将源代码组合到一个类中,但是正如@ oleg-cherednik所提到的,编译时将有几个单独的类文件。