[英]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.