Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将单个java程序拆分为多个java程序?_Java - Fatal编程技术网

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

如何将单个java程序拆分为多个java程序?,java,Java,我有一个关于将一个java程序拆分为多个程序的问题 假设我有一个计算器程序,它有加、减、乘、除和求模除的功能。 我想把这个冗长的程序分成几个子程序,如add.java表示加法,sub.java表示减法,mul.java表示乘法,等等 我如何像那样拆分它,并彼此链接?您可以将添加、订阅等拆分到不同的文件。但请注意,.java文件名必须与类名匹配。例如,如果将add拆分为add.java,则在add.java中,必须有一个名为add的类 之后,每个.java文件将被编译为.class文件。运行时,只

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

假设我有一个计算器程序,它有加、减、乘、除和求模除的功能。 我想把这个冗长的程序分成几个子程序,如add.java表示加法,sub.java表示减法,mul.java表示乘法,等等


我如何像那样拆分它,并彼此链接?

您可以将添加、订阅等拆分到不同的文件。但请注意,
.java
文件名必须与类名匹配。例如,如果将add拆分为
add.java
,则在
add.java
中,必须有一个名为
add
的类

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

java Calc.class sub.class add.class
您还可以将所有.class文件打包成一个.jar文件。然后,当您运行时:

java Calc.jar

这不是怎么做的问题,而是你是否应该这样做的问题。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,不需要实际的导入语句。一个文件夹中的所有java文件都被视为在一个“包”中,这是默认的包。如果您要声明自己的包,那就不同了。

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

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

将现有的单片类拆分为更小的组件更加困难,因为没有一种“正确的方法”可以做到这一点。(如果你理解OOD,这对你来说是显而易见的……)


我建议你从读一些关于OOD的东西开始。这将使您对应用程序的设计和结构有所了解。一旦您了解了OOD,阅读一本关于Java设计模式的书也会很有帮助。但是,您需要了解面向对象设计(OOD)以使设计模式对您有意义。

拆分后您将如何使用它?听起来您想创建一个包含多个类的程序。也许会有帮助…那么,我们如何将所有这些联系起来?