簡體   English   中英

如何使用另一個類/文件中定義的java方法

[英]How to use java methods defined in another class/file

我一直在研究Project Euler中的一些問題,並且在這個過程中,編寫了很多有用的方法(在Java中),我可能想在其他Java項目中使用它們。 我希望能夠以從java.lang.math調用函數的方式調用它們,所以如果我有一個方法primeFactor(),我可以使用MyMathMethods.primeFactor(number)調用它。 我該怎么做? 我會制作一些我可以導入的包裹嗎? 我是否會創建一個包含所有有用的數學函數的超類,並且在新項目中使用我正在使用的任何類? 可能有多種方法可以做到這一點,但我不知道什么是最好的。 提前致謝。

將實用程序方法標記為public static. 在jar中打包包含這些實用程序方法的類。 在項目中添加/引用該jar,您要在其中使用。 然后在您的代碼中,您可以以靜態方式調用它們: MyUtilityClass.myUtilityMethod();MyUtilityClass.myUtilityMethod();

對於這種情況最好的事情是在有意義的包中工作並制作他們的罐子
你可以像這樣創建一個包

/* 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();
   }
} 

你可以導入它們
import animals.*; 或者是更具體的import animals.MammalInt;

現在您可以制作jar文件,將其導入項目並使用其方法
您可以通過此命令輕松完成此操作
jar cmf MyJar.jar Manifest.txt MyPackage/*.class
有關jar創建的更多詳細信息,請參閱此處
作為旁注:在包裝時要小心成員和功能的可見性
因為在我們使用它們時,使用和可訪問性很重要

您可以僅使用util類創建單獨的java項目,然后創建jar文件並導入到任何其他項目中。

只需實例化該類。 就像你的例子,如果你有一類MyMathMethods與功能primeFactor(number) ,然后在其他類,簡單的東西,如對其進行實例化private MyMathMethods myMathMethods; 現在,要調用該函數,只需執行myMathMethods.primeFactor(number); 您可能還需要導入其包。

對包的錯誤理解是包中定義的任何類對所有其他類都是可見的。 根據我的經驗不正確。 如果您有包含實用程序樣式方法的類,您希望在另一個類中使用它? 只需在需要該方法的類中聲明該類的新實例。類似於... private MathUtilsClass mathUtilsClass = new MathUtilsClass():然后,您要從此類調用的任何方法都使用新標識符,例如mathUtilsClass.greatFunction( ); 這非常簡單,應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM