0

他のクラスからメソッドをインポートする方法がわかりません

エラー:メソッドSitoEratostenesa(int)は、タイプSitoEratostenesaTestに対して未定義です。

この質問を見つけましたが、関数が静的であり、問​​題が発生します。

import java.util.Arrays;
public class SitoEratostenesaTest{
    public static void main(String[] args) {
        int i, x;
        int ilosc=args.length;
        int[] liczby = new int[ilosc-1];
        Arrays.fill(liczby, 0);

        for(i=1; i<ilosc; i++){
            liczby[i]=Integer.parseInt(args[i]);
        }

        for(i=2, x=1; i<args.length; i++){
            if(liczby[x]<liczby[i]){
                    x=i;
            }
        }

        SitoEratostenesa(liczby[x]);
    }
}

2番目のクラスは次で始まります:

import java.util.Arrays;
public class SitoEratostenesa{
    public SitoEratostenesa(int n){
    boolean[] tab = new boolean[n-1];
    //and tab[] gets filled

SitoEratostenesaTestにインポートする主な目的は、そこにtab[]を取得することです。

4

2 に答える 2

0

あなたが試すことができますnew SitoEratostenesa(liczby[x]);


SitoEratostenesa(liczby[x]);

SitoEratostenesaこれは classで呼び出された関数を呼び出そうとしますがSitoEratostenesaTest、これはもちろん存在せず、表示されるエラーです。

あなたがしたいことはSitoEratostenesa、そのタイプのオブジェクトを作成する必要がある のコンストラクターを呼び出すことだと思います。

new SitoEratostenesa(liczby[x]);
^^^

しかし、作成したばかりのオブジェクトにアクセスしたい場合は、それへの参照を保存する必要があるため、次のようにする必要があります

SitoEratostenesa myObj = new SitoEratostenesa(liczby[x]);
于 2013-03-07T09:52:48.627 に答える