2012-04-29 97 views
0

我有一個名爲「name」的變量存儲在工作文件夾中的另一個類中。我想將它與來自JOptionPane的用戶輸入進行比較。我的代碼是這樣的:比較If語句中的字符串時出錯

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

當我編譯程序時,它拋出了錯誤,它無法找到符號「名」。我是否需要以其他方式調用變量以便將其與用戶輸入進行比較,還是我在這裏完全錯誤?

回答

0

比方說在工作文件夾中你有以下兩類:

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創建對象;只需使用類名。

1

如果name是不同對象的成員,那麼您將需要指定哪個對象。

thingWithAName.name.equals(userInput) 
+0

首選樣式是使用「訪問器」方法,而不是直接抓取名稱。例如'if(thingWithAName.getName()。equals(userInput))//在這裏做某事' – user949300