我有一个关于将单个java程序拆分成多个程序的问题。
假设我有一个计算器程序,它具有添加,减去,乘法,除法和找到模除法的功能。 我想将这个冗长的程序划分/拆分为子程序,例如add.java用于加法,sub.java用于减法,mul.java用于乘法,等等。
如何将其拆分并相互链接?
答案 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文件都被认为是在一个“包”中,这是默认包。如果你要申报自己的包裹,那将是另一回事。