我正在学习Java和OOP,并且已经在Project Euler进行练习(很棒的网站顺便说一句)。
我发现自己一遍又一遍地做同样的事情,比如:
存储和调用这些方法的最佳方法是什么?我应该编写一个实用程序类然后import
吗?如果是,我是否会导入.class
文件或.java
来源?我正在使用纯文本编辑器和Mac终端。
谢谢!
答案 0 :(得分:5)
您可以将方法放入实用程序类,然后import
该类(不是文件!)。
import my.useful.UtilityClass;
...
boolean isPrime = UtilityClass.isPrime(2);
当事情开始变得更复杂,并且你想在多个项目中重用你的东西时,你可以将它放入一个jar中并将该jar添加到项目中。然后你可以import
并以与上面相同的方式使用该课程。
答案 1 :(得分:1)
UtilityClass
这个想法很好,但它也让您有机会练习TDD。对于新的Euler问题,请在UtilityClass
中创建一个空方法,以解决该问题。然后制作一堆使用这种新方法的JUnit tests,并依赖它是正确的。测试都将失败(或者他们应该,因为你还没有编写解决方案!)
现在解决欧拉问题并观察测试通过!如果您想稍后重用代码,单元测试将在重构期间保持正确,并为您可能找到的错误添加回归案例。
答案 2 :(得分:1)
使用您的答案创建目录树。我/数学/ *。java的。您应该为该类指定包my.math。为不同的问题集创建不同的类; Primes.java,Fibonacci.java等。如果您已经解决了一次问题,请不要再解决,除非您的解决方案被破坏。
将my / math上方的目录添加到类路径(java -cp目录)或jar目录中,并将其添加到类路径中。
这样的图书馆是成功项目的命脉。创建和使用解决方案库(该语言尚未具有库)解决了许多项目问题。尽可能使用可用的库。
答案 3 :(得分:0)
为什么不创建一个jar文件,一个自己常用的组件库?如果编译java代码,只需在类路径中包含实用程序存档。