重用Java方法的最佳方法

我正在学习Java和OOP,并且已经在Project Euler进行练习(很棒的站点顺便说一句)。

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

  • 检查整数是否为素数/生成素数
  • 生成Fibonacci系列
  • 检查一个数字是否是回文

存储和调用这些方法的最佳方法是什么? 我应该编写一个实用程序类然后import它吗? 如果是这样,我是否导入.class文件或.java源? 我正在使用纯文本编辑器和Mac终端。

谢谢!

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

 import my.useful.UtilityClass; ... boolean isPrime = UtilityClass.isPrime(2); 

当事情变得越来越复杂,并且你想在多个项目中重用你的东西时,你可以将它放入一个jar中并将该jar添加到项目中。 然后您可以像上面一样import和使用该类。

UtilityClass想法很好,但它也让你有机会练习TDD 。 对于新的Euler问题,在UtilityClass中创建一个空方法,您将解决该问题。 然后制作一堆使用这种新方法的JUnit测试并依赖它是正确的。 测试都会失败(或者他们应该,因为你还没有编写解决方案!)

现在解决欧拉问题并观察测试通过! 如果您想稍后重用代码,unit testing将在重构期间保持正确,并为您可能找到的错误添加回归案例。

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

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

像这样的图书馆是成功项目的生命线。 创建和使用解决方案库(该语言尚未具有库)解决了许多项目问题。 尽可能使用可用的库。

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