0

作業フォルダーの別のクラスに「name」という変数が保存されています。JOptionPane からのユーザー入力と比較したい。私が持っているコードはこれです:

String userInput = JOptionPane.showInputDialog(null, "What is the value?");
if(name.equals(userInput)){JOptionPane.showMessageDialog(null, "You are correct.");}

プログラムをコンパイルすると、シンボル「name」が見つからないというエラーが発生します。ユーザー入力と比較するために変数を別の方法で呼び出す必要がありますか、それともここで完全に間違っていますか?

4

2 に答える 2

1

が別のオブジェクトのメンバーである場合nameは、どのオブジェクトを指定する必要があります。

thingWithAName.name.equals(userInput)
于 2012-04-29T23:41:23.847 に答える
0

作業フォルダーに、次の 2 つのクラスがあるとします。

class IHaveNameVariable
{
    String name;
}

class IAccessNameVariable
{
    public void someMethod()
    {
        // Uncomment the code below
        // and it will compile.

        // IHaveNameVariable aRef = new IHaveNameVariable();

        String userInput = JOptionPane.showInputDialog(null, "What is the value?");
        if(/*aRef.*/name.equals(userInput))
        {
            JOptionPane.showMessageDialog(null, "You are correct.");
        }
    }
}

これが、別のクラスのフィールドにアクセスする方法です。フィールドが の場合、staticを使用してオブジェクトを作成する必要はありませんnew。単純にクラス名を使用してください。

于 2012-04-30T00:08:15.490 に答える