如何使用在另一个类/文件中定义的java方法

如何使用在另一个类/文件中定义的java方法,java,packages,Java,Packages,我一直在研究ProjectEuler中的一些问题,在此过程中,我编写了许多有用的方法(Java),我可能希望在其他Java项目中使用这些方法。我希望能够像从java.lang.math调用函数那样调用它们,因此如果我有一个方法primeFactor(),我可以使用MyMathMethods.primeFactor(number)调用它。我该怎么办?我能做一些可以进口的包装吗?我会创建一个包含所有有用的math-y函数的超类,并让我在新项目中使用的任何类扩展它吗?可能有多种方法可以做到这一点,但我

我一直在研究ProjectEuler中的一些问题,在此过程中,我编写了许多有用的方法(Java),我可能希望在其他Java项目中使用这些方法。我希望能够像从java.lang.math调用函数那样调用它们,因此如果我有一个方法primeFactor(),我可以使用
MyMathMethods.primeFactor(number)
调用它。我该怎么办?我能做一些可以进口的包装吗?我会创建一个包含所有有用的math-y函数的超类,并让我在新项目中使用的任何类扩展它吗?可能有多种方法可以做到这一点,但我不知道什么是最好的。提前感谢。

您可以仅使用util类创建单独的java项目,然后创建jar文件并导入到任何其他项目。

将实用程序方法标记为
公共静态。
将包含这些实用程序方法的类打包到jar中。在您的项目中添加/引用该jar,您希望在其中使用。然后在代码中,您可以静态地调用它们lke:
MyUtilityClass.myUtilityMethod()

只需实例化该类。像你的例子一样,如果你有一个类
MyMathMethods
带有函数
primeFactor(number)
,那么在其他类中,只需用类似
private MyMathMethods MyMathMethods的东西实例化它。现在,只需调用函数do
myMathMethods.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
方法和构造函数。