0

PHP では、次のようなファイルを作成できます。

function isPrime($num)
{
    return true;
}

function sayYes()
{
    echo "yes\n";
}

functions.phpこれは、という名前のフォルダーにあるという名前のファイルになりますmycode
別のファイルがあります:

include "../functions.php";
if (isPrime()) {
    sayYes();
}

file1.phpこれは、 という名前のフォルダにある という名前のファイルにありますfile1。フォルダはfile1フォルダ内にありmycodeます。

この例のポイントは、他のファイルで再利用できるようにしたい関数がたくさんあるファイルがあるということです。フォルダー内に多くのフォルダーを作成しmycodeます ( file1file2などfile3)。これらの各サブフォルダー内のすべてのコードは完全に分離されており、他のすべてのサブフォルダー内のすべてのコードとは無関係です。ただし、すべてのサブフォルダー内のコード全体で使用したい汎用関数がいくつかあるため、最上位フォルダーに配置されます。

Java では、次のようなファイルがあります。

package com.awesome.mycode.file1;

public class File1
{
    public static void main(String[] args)
    {
        MyCodeFunctions.sayYes();
    }
}

File1.javaこれは、上記と同じfile1フォルダーにある名前のファイルにあります。
次のような別のファイルがあります。

package com.awesome.mycode;

public class MyCodeFunctions
{
    public static void sayYes()
    {
        System.out.println("yes");
    }
}

MyCodeFunctions.javaこれは、上記と同じmycodeフォルダー内のという名前のファイルにあります。

私の質問は次のとおりです。
これらの 2 つのクラスをコンパイルして、 が配置MyCodeFunctions.javaされているフォルダーの下にある多くの異なるサブフォルダー内のクラスで再利用できるようにするにはどうすればよいMyCodeFunctions.javaですか? の先頭にどのようなimportステートメントを配置する必要がありFile1.javaますか? MyCodeFunctions.javaJAR ファイルにコンパイルする必要がありますか? もしそうなら、どのように?コンパイル時にこの JAR ファイルをリンクするには、コマンド ラインで何を実行すればよいFile1.javaですか?

includeこれは、 PHP などの言語で見られる種類のステートメントとは異なるパラダイムであることを理解しています。それがこの質問の要点です。私は違いがあることを理解しています.Javaパラダイムでそれを行う同等の方法が何であるかを知りたいです. これを行うために IDE を使用したくありません。また、手動で行うことがどれほど複雑であるかは問題ではありません。

これには Linux を使用していますが、Windows マシンでも同じように簡単に実行できます。

4

1 に答える 1

2

Java では、次のimportステートメントを使用します。

package com.awesome.mycode.file1;

import com.awesome.mycode.MyCodeFunctions;

public class File1
{
    public static void main(String[] args)
    {
        MyCodeFunctions.sayYes();
    }
}

import同じパッケージ内のクラスには不要です。

sayYes()は関数であるためstatic、クラス修飾子なしで関数を使用できるバリエーションがあります。

package com.awesome.mycode.file1;

import static com.awesome.mycode.MyCodeFunctions.sayYes;

public class File1
{
    public static void main(String[] args)
    {
        sayYes();
    }
}

*最後の位置で a をワイルドカードとして使用して、すべてのクラス (importステートメントの場合) またはすべての静的メンバー (フィールドとメソッドの両方と mdash (import staticステートメントの場合)) をインポートできます。

編集

両方のファイルをコンパイルするには、ソース ツリーは次のようになります。

/com
    /awesome
        /mycode
            /file1
                File1.java
            MyCodeFunctions.java

コンパイルするには、cd を含むフォルダーに移動し/com、コマンド ラインを使用します。

javac com/awesome/mycode/MyCodeFunctions.java com/awesome/mycode/file1/File1.java

必要なその他のオプション (出力の制御など) とともに、詳細についてはjavac ドキュメントを参照してください。

于 2013-10-01T04:33:24.990 に答える