Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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_Code Reuse - Fatal编程技术网

重用Java方法的最佳方法

重用Java方法的最佳方法,java,code-reuse,Java,Code Reuse,我正在学习Java和OOP,并且一直在为练习做这些问题(顺便说一句,很棒的网站) 我发现自己一遍又一遍地做着同样的事情,比如: 检查整数是否为素数/生成素数 斐波那契级数的生成 检查数字是否为回文 存储和调用这些方法的最佳方式是什么?我应该编写一个实用程序类,然后导入它吗?如果是,我是导入.class文件还是导入.java源代码?我使用的是纯文本编辑器和Mac终端 谢谢 您可以将方法放入实用程序类,然后导入该类(而不是文件!) 当事情变得越来越复杂,并且您希望在多个项目中重用您的东西时,您可

我正在学习Java和OOP,并且一直在为练习做这些问题(顺便说一句,很棒的网站)

我发现自己一遍又一遍地做着同样的事情,比如:

  • 检查整数是否为素数/生成素数
  • 斐波那契级数的生成
  • 检查数字是否为回文
存储和调用这些方法的最佳方式是什么?我应该编写一个实用程序类,然后导入它吗?如果是,我是导入
.class
文件还是导入
.java
源代码?我使用的是纯文本编辑器和Mac终端


谢谢

您可以将方法放入实用程序类,然后导入该类(而不是文件!)


当事情变得越来越复杂,并且您希望在多个项目中重用您的东西时,您可以将其放入一个jar中,并将该jar添加到项目中。然后,您可以导入并以与上面相同的方式使用该类。

为什么不创建一个文件,一个您自己的常用组件库呢?如果您编译java代码,只需在类路径中包含实用程序归档。

实用程序类的想法很好,但它也为您提供了练习的机会。对于新的Euler问题,请在
实用类中创建一个空方法,您将在其中解决该问题。然后让一堆人使用这个新方法,并相信它是正确的。测试将全部失败(或者应该失败,因为您还没有编写解决方案!)


现在解决Euler问题并观察测试通过!如果您希望以后重用代码,单元测试将在重构过程中保持正确,并为您可能发现的错误提供一个添加回归案例的地方。

创建一个包含答案的目录树。my/math/*.java。您应该为类指定包my.math。为不同的问题集创建不同的类;Primes.java、Fibonacci.java等。如果您已经解决了一次问题,不要再解决它,除非您的解决方案被破坏

将my/math上面的目录添加到类路径(java-cp目录)或jar目录中,并将其添加到类路径中


像这样的库是一个成功项目的生命线。创建和使用解决方案库(该语言还没有库)可以解决许多项目问题。尽可能使用可用的库

对于euler和ide,不使用ide的java编码是学习语言的好方法。但是,请不要认为在进行大规模Java项目时可以继续这样做。
my.Usage.UtilityClass
指的是文件
my.Usage.UtilityClass.class
,否,与类路径相关的
my/usive/UtilityClass.class
文件:)如果您得到了很多这样的东西并以一致的方式命名它们,那么使用静态导入()通常比一遍又一遍地使用
UtilityClass来编写代码要容易得多。
import my.useful.UtilityClass;

...
boolean isPrime = UtilityClass.isPrime(2);