私は Project Euler のいくつかの問題に取り組んできましたが、その過程で、他の Java プロジェクトで使用したいと思うような便利なメソッドを (Java で) たくさん書きました。java.lang.math から関数を呼び出す方法でそれらを呼び出せるようにしたいので、メソッド primeFactor() があれば、 を使用して呼び出すことができますMyMathMethods.primeFactor(number)
。これについてどうすればいいですか?インポートできるパッケージを作成しますか? 有用な数学関数をすべて含むスーパークラスを作成し、新しいプロジェクトで使用しているクラスがそれを拡張するようにしますか? これを行うにはおそらく複数の方法がありますが、何が最善かはわかりません。前もって感謝します。
5 に答える
public static.
ユーティリティ メソッドを、これらのユーティリティ メソッドを含むクラスを jar にパッケージ化するようにマークします。使用するプロジェクトでその jar を追加/参照します。次に、コードで静的な方法 lke でそれらを呼び出すことができます。MyUtilityClass.myUtilityMethod();
この状況での最善の方法は、意味のあるパッケージで作業し、それらの 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();
}
}
それらを次のようにインポートする
import animals.*;
か、より具体的にすることができimport animals.MammalInt;
ますこれで、jar ファイルを作成し、プロジェクトにインポートして、そのメソッドを使用
できます このコマンドで簡単に実行できますjar cmf MyJar.jar Manifest.txt MyPackage/*.class
jar 作成の詳細については、
これを参照してください 補足として: 注意してくださいパッケージ化中のメンバーと関数の可視性について
それらを使用している間、使用法とアクセシビリティが非常に重要であるため
パッケージの誤った理解は、パッケージ内で定義されたすべてのクラスが他のすべてのクラスから見えるということです。私の経験からは真実ではありません。別のクラスで利用できるようにしたいユーティリティ スタイル メソッドを含むクラスがある場合は? メソッドが必要なクラスでクラスの新しいインスタンスを宣言するだけです。次のように... private MathUtilsClass mathUtilsClass = new MathUtilsClass(): 次に、このクラスから呼び出したいメソッドは新しい識別子を使用します。例: mathUtilsClass.greatFunction( ); これはばかげて簡単で、問題を解決するはずです。
util クラスのみを使用して別の Java プロジェクトを作成し、jar ファイルを作成して別のプロジェクトにインポートすることができます。