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

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

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

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

谢谢!

#1楼 票数:5 已采纳

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

import my.useful.UtilityClass;

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

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

#2楼 票数:1

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

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

#3楼 票数:1

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

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

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

#4楼 票数:0

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

  ask by carillonator translate from so

未解决问题?本站智能推荐:

1回复

从Eclipse中的另一个Java项目重用类的最佳方法是什么?

我在Eclipse中有多个Java项目。 我想从我的旧项目中重新使用我的新项目中的一些类。 Eclipse中最好的方法是什么? 即是可以在我的新项目的构建路径中添加另一个“项目文件夹”吗?
2回复

Java代码在两个或多个具有相同代码的方法中重用

我在Java中使用以下代码来查询数据库: 如何避免使用重复代码。 在方法checkTableHasData和checkExistsQuery中,我大多重复代码。 编辑:忘记提及,他们最后可能会有不同的断言,例如: 是(Matchers.greaterThan(0)));
3回复

在Java中:可以对方法链进行代码重用以调用继承层次结构吗?

我有一些类继承SubClass <MidClass <SuperClass,并且想为所有这些类向上执行一些任务。 TASK非常复杂,仅对3个类进行了微小的更改,我将其移入了私有方法m2()中。 我当前的解决方案非常实用: 我可以利用某种代码重用机制来代替复制任务吗?
4回复

用引号分隔字符串,重用将参数解析为main的方法

在我编写的小程序中,我必须解析一行用户输入。 基本上,需要做的就是按照与main()参数相同的方式将行拆分为字符串数组,即我正在寻找类似的东西: 我只是想知道,如果在调用main本身之前以这种方式解析main方法的参数,是否可以调用该方法而不是编写自己的方法? 那么,有人知道在哪里可
3回复

如何重用一个方法,但为第二个方法添加更多功能?

我在 Class Register中有一个addUser()方法,它作为常规形式工作,询问系统用户诸如“ firstName ”、“ lastName ”、“ username ”和“ password ”之类的信息。 只有在用户注册并登录后,他们才能使用类Customer的方法添加新客户,该方
7回复

重用代码 - Java

有没有办法在这些函数中重用迭代数组代码:
1回复

枚举中的Java重用代码

我有一个如下的枚举: 我有100多个这样的枚举。 如何在区域和末端区域之间重用代码? ................................................... ..........
4回复

避免代码重复的Java通用参数方法

我有一个解析对象的函数。 但是在两个服务中都需要此函数,并且参数具有相同的类名,但具有不同的包名。 我需要的是避免重复的代码。 假设函数为: 可能的函数调用: PagingRequestType是两个不同程序包中的自动生成的类。 该功能只需实施一次,即可在两种服务中使