0

プライベート int 配列があり、どうにかして長さを見つける必要がありますが、静的クラスの下ではこれを行うことができません。クラスを静的に保つ必要があります。a.length を別のものに変更するために追加できる別のメソッドはありますか?

この問題は a.length が原因です。

private int [] a;

public static IntegerSet union(IntegerSet otherSet, IntegerSet nextSet) {

                for(int i=0; i<a.length; i++) {
                  if (otherSet.isSet(i))
                    nextSet.insertElement(i);
                }

                return nextSet;
              }
4

4 に答える 4

1

私が言ったように使用

public int lenghtOfArray(){
      return this.a.lenght;
}

メソッドをに変更します

public static IntegerSet union(IntegerSet otherSet, IntegerSet nextSet) {
      for(int i=0; i<otherSet.length(); i++) {
           if (otherSet.isSet(i))
                nextSet.insertElement(i);
           }
           return nextSet;
      }
于 2012-12-04T06:09:38.100 に答える
0

静的にするかa、クラスのインスタンスを引数としてメソッドに渡し、そのインスタンスのフィールドunionにアクセスします。a

于 2012-12-04T06:07:20.097 に答える
0

オブジェクトのフィールドを参照する必要があります。

private int [] a;

public static IntegerSet union(IntegerSet otherSet, IntegerSet nextSet) {
    . . .
    for(int i=0; i<otherSet.a.length; i++) {
        . . .
    }
}
于 2012-12-04T06:07:30.250 に答える
0

a.length静的クラスから参照していません。あなたは静的メソッドからそれをやっています。静的メソッドは、非静的メンバー変数を参照できません。

あたかもそこにバグがあるかのように見えます。なぜあなたは反対するのa.lengthですか?またはのaメンバーについて問い合わせる必要があります。otherSetnextSet

于 2012-12-04T06:08:51.410 に答える