-1

クラスを 1 つのファイルから 2 つのファイルに移動する方法を復習する必要があります。私のサンプル コードは、「external_class_file_main」という 1 つのファイルにあります。プログラムは正常に実行され、コードは次のようになります。

Public class external_class_file_main {

    public static int get_a_random_number (int min, int max) {
        int n;
        n = (int)(Math.random() * (max - min +1)) + min;
        return (n);

    }

    public static void main(String[] args) {
        int r;
        System.out.println("Program starting...");

        r = get_a_random_number (1, 5);
        System.out.println("random number = " + r);

        System.out.println("Program ending...");

    }

}

get_a_random_numberクラスを「 external_class_file 」という別のファイルに移動します。これを行うと、次のエラーが表示されます。

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method get_a_random_number(int, int) is undefined for the type
external_class_file_main
at external_class_file_main.main(external_class_file_main.java:20)

" external_class_file_main " には以下が含まれるようになりました:

public class external_class_file_main {

    public static void main(String[] args) {
        int r;
        System.out.println("Program starting...");

        r = get_a_random_number (1, 5);
        System.out.println("random number = " + r);

        System.out.println("Program ending...");

    }

}

external_class_file」には以下が含まれるようになりました。

public class external_class_file {

    public static int get_a_random_number (int min, int max) {
        int n;
        n = (int)(Math.random() * (max - min +1)) + min;
        return (n);

    }

}
4

3 に答える 3

3

get_a_random_numberclass を介してt を参照する必要がありますexternal_class_file。例えば:

int r;
System.out.println("Program starting...");
r = external_class_file.get_a_random_number (1, 5);

ただし、Java の命名規則には必ず従う必要があります。

于 2012-12-04T16:59:49.227 に答える
1

external_class_file_main クラスから get_a_random_number メソッドにアクセスできなくなりました。必要なメソッドは静的であるため、次のように直接参照できます。

public static void main(String[] args) {

    int r;
    System.out.println("Program starting...");

    r = external_class_file.get_a_random_number (1, 5);
    System.out.println("random number = " + r);

    System.out.println("Program ending...");

}

PSメソッドとクラスに適切なJava命名規則を使用する場合、たとえばアンダースコアを使用せず、クラスを大文字で始めると、コーディングがはるかに簡単になり、質問を読んでいる人にとっても簡単になります。http://en.wikipedia.org/wiki/Naming_convention_%28プログラミング%29

于 2012-12-04T16:59:00.467 に答える
1

ここで解決策:

public class external_class_file_main {

    public static void main(String[] args) {
        int r;
        System.out.println("Program starting...");

        r = external_class_file.get_a_random_number (1, 5);
        System.out.println("random number = " + r);

        System.out.println("Program ending...");

    }

}

ただし、Java の命名規則を調べてください。

于 2012-12-04T17:01:08.283 に答える