如何将单个java程序拆分成多个java程序?

时间:2013-03-30 01:01:33

标签: java

我有一个关于将单个java程序拆分成多个程序的问题。

假设我有一个计算器程序,它具有添加,减去,乘法,除法和找到模除法的功能。 我想将这个冗长的程序划分/拆分为子程序,例如add.java用于加法,sub.java用于减法,mul.java用于乘法,等等。

如何将其拆分并相互链接?

3 个答案:

答案 0 :(得分:3)

在我看来,您真正的问题是您不了解Java和面向对象设计(OOD)的基础知识。您刚刚将所有代码转储到一个类中,可能在整个地方使用static方法和变量。 (你谈到分裂成子程序,这有点让步。)

Oracle Java Tutorial(或任何优秀的Java教科书)将解释一个类是什么,以及如何编写,编译和运行由多个类组成的程序。

将现有的整体类拆分成更小的组件更加困难,因为没有单一的正确方法"去做吧。 (如果你理解OOD,那对你来说显然是显而易见的......)

我建议您先阅读OOD上的一些内容。这应该可以让您深入了解应该的应用程序设计和结构。一旦你理解了OOD,阅读一本关于Java设计模式的书也会有所帮助。但是,您需要了解设计模式的OOD才能让您理解。

答案 1 :(得分:0)

您可以将add,sub等分割为不同的文件。但请注意,.java文件名必须与类名匹配。例如,如果您将添加分为add.java,那么在add.java中,您必须拥有一个名为add的类。

之后,每个.java文件将被编译为.class文件。当你运行时,你只需要将所有.class文件都提供给java,如下所示:

java Calc.class sub.class add.class

您也可以将所有.class文件打包成.jar文件。然后当你跑:

java Calc.jar

答案 2 :(得分:0)

这不是一个问题,而是你应该怎么做。 Java的优势在于它是一种非常强大的面向对象语言,但它仍然有限制。

对于要添加的每个程序,您必须创建一个新的类文件和一个新类。你仍然需要一个主程序,比如Calculator.java,然后必须实例化其他模块的版本。

Add adder = new Add();
Subtract subtracter = new Subtract();

等。这最终会花费你更多的时间而不是它的价值,特别是如果你真的不需要单独的模块来完成一项看似简单的任务。

要回答如何执行此操作:

Calculator.java //The main program that will import the others.
Add.java
Modulo.java
...etc

假设所有这些文件都在一个文件夹中,并且您使用javac *.java编译它们,那么如果Calculator.java要实例化Add.java的新版本,如上所示,它会自动导入(如果这是你的主要问题)。

与C ++或C不同,您不需要实际的import语句。一个文件夹中的所有Java文件都被认为是在一个“包”中,这是默认包。如果你要申报自己的包裹,那将是另一回事。