如何使用在另一个类/文件中定义的java方法
我一直在研究ProjectEuler中的一些问题,在此过程中,我编写了许多有用的方法(Java),我可能希望在其他Java项目中使用这些方法。我希望能够像从java.lang.math调用函数那样调用它们,因此如果我有一个方法primeFactor(),我可以使用如何使用在另一个类/文件中定义的java方法,java,packages,Java,Packages,我一直在研究ProjectEuler中的一些问题,在此过程中,我编写了许多有用的方法(Java),我可能希望在其他Java项目中使用这些方法。我希望能够像从java.lang.math调用函数那样调用它们,因此如果我有一个方法primeFactor(),我可以使用MyMathMethods.primeFactor(number)调用它。我该怎么办?我能做一些可以进口的包装吗?我会创建一个包含所有有用的math-y函数的超类,并让我在新项目中使用的任何类扩展它吗?可能有多种方法可以做到这一点,但我
MyMathMethods.primeFactor(number)
调用它。我该怎么办?我能做一些可以进口的包装吗?我会创建一个包含所有有用的math-y函数的超类,并让我在新项目中使用的任何类扩展它吗?可能有多种方法可以做到这一点,但我不知道什么是最好的。提前感谢。您可以仅使用util类创建单独的java项目,然后创建jar文件并导入到任何其他项目。将实用程序方法标记为公共静态。
将包含这些实用程序方法的类打包到jar中。在您的项目中添加/引用该jar,您希望在其中使用。然后在代码中,您可以静态地调用它们lke:MyUtilityClass.myUtilityMethod()代码>只需实例化该类。像你的例子一样,如果你有一个类MyMathMethods
带有函数primeFactor(number)
,那么在其他类中,只需用类似private MyMathMethods MyMathMethods的东西实例化它代码>。现在,只需调用函数domyMathMethods.primeFactor(number)代码>您可能还需要导入它的包。在这种情况下,最好是在有意义的包中工作,并制作它们的jar
您可以创建一个包,如
/* File name : Animal.java */
package animals;
interface Animal {
public void eat();
public void travel();
}
也在课堂上
package animals;
/* File name : MammalInt.java */
public class MammalInt implements Animal{
public void eat(){
System.out.println("Mammal eats");
}
public void travel(){
System.out.println("Mammal travels");
}
public int noOfLegs(){
return 0;
}
public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}
您可以像导入
进口动物。*代码>或更具体的导入动物.maimalaint代码>
现在,您可以创建jar文件,将其导入到项目中并使用其方法
您可以通过此命令执行此操作
jar cmf MyJar.jar Manifest.txt MyPackage/*.class
作为旁注:在打包时要注意成员和函数的可见性
因为在我们使用它们时,用法和可访问性非常重要错误理解包中定义的任何类对所有其他类都是可见的。从我的经验来看不是这样。如果您有包含实用程序样式方法的类,您希望在另一个类中使用它们?只需在需要该方法的类中声明该类的新实例。喜欢private MathUtilsClass MathUtilsClass=new MathUtilsClass():则要从此类调用的任何方法都使用新标识符,例如MathUtilsClass.greatFunction();这非常简单,应该可以解决你的问题 如果它在同一个文件夹中,则不需要导入它。如果它在不同的文件夹中,那么您必须。文件在顶部的特定包中声明。例如:包java.lang
将位于对象
类的顶部。因此,您可以调用import java.lang.Object
来访问Object
方法和构造函数。