-5

たとえば、 と の 2 つのクラスがClass1あり、 からフィールド (例: )を使用してステートメントClass2を作成したいとします。ifClass2int optionClass1

オブジェクトを作成してみました:

Class1 object = new Class1();

Class2、次にifステートメントを記述します。

if(object.option == 2)

しかし、うまくいきませんでした。

import java.util.Scanner;

public class Class1 {
    public static void main(String[] args) {
        Class2 obj = new Class2();
        int option;
        Scanner input = new Scanner(System.in);
        System.out.print("Enter an option of 1, 2 or 3");
        option = input.nextInt();
        obj.input();
    }
}

public class Class2 {

    public void input(){
        Class1 object = new Class1();
        if(object.option == 1){
            System.out.print("You've selected the option 1");
        }
        else if(object.option == 2){

            System.out.print("You've selected the option 2");
        }
        else if (object.option == 3){
            System.out.println("You've selected the option 3");
        }
    }
}

コンパイル エラーが発生します:オプションをフィールドに解決できません

4

4 に答える 4

1

メソッドoption内でfor を宣言しています。つまり、そのメソッドの外には存在しません。クラス内ではなく、メソッドの外で宣言する必要があります。また、別のクラスからアクセスしているため、そうする必要があります(両方のクラスが同じパッケージにあることがわかったので、実際には必要ありません)(ただし、 lpaloubによる回答を参照してください)。この特定のトピックについては、http://docs.oracle.com/javase/tutorial/java/javaOO/variables.htmlおよびhttp://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.htmlを参照してください。main()Class1public

ただし、コードは意図したとおりには機能しません。あなたがそれらの問題に遭遇したとき、私たちはあなたにできるかもしれません。それまでの間、 http://docs.oracle.com/javase/tutorial/java/index.htmlを学習する必要があります。

于 2013-03-06T16:54:40.250 に答える
0

Class1では、intをpublicとして宣言する必要がありますが、それはとにかく最善の方法ではありません。

最良の方法は、intを返すClass1にgetクラスを作成することです。

public int get(){ return (your int); } そして、Class2ではobject.get()のように呼び出します

お役に立てれば

于 2013-03-06T16:37:43.637 に答える
0

optionのフィールドにClass1正しいアクセス修飾子があることを確認してください。たとえば、プライベートの場合、クラス外で使用することはできません。フィールドを設定するpublicと、ジョブが実行されます。残念ながら、追加の詳細がなければ、これ以上具体的な答えを出すことはできません。

于 2013-03-06T16:37:45.510 に答える
0

値を比較するClass2のメソッドを持つことができます

 public class Class2 {
     int willBeCompared = 2;

     public boolean compareToAnotherNumber(int option) {
        return option == willBeCompared;
     }
 }

これは次のように使用されます。

 Class1 object = new Class1();
 Class2 comparer = new Class2();

 system.out.println(comparer.compareToAnotherNumber(object.option));
于 2013-03-06T16:37:47.547 に答える