2012-11-24 39 views
6

我是新來編程,我很抱歉,如果這是一個愚蠢的錯誤,但我不斷收到此錯誤"CompanyAddress.java:11: error: cannot find symbol System.out.println(testObject.getName(CompanyName));"我不知道我是什麼做錯了。我不能得到這個工作,方法和實例變量

主。

import java.util.Scanner; 
public class CompanyAddress 
{ 
    public static void main(String[] args) 
    { 
    Scanner scan = new Scanner(System.in); 
    test testObject = new test(); 
    System.out.println("Enter name: "); 
    String input = scan.nextLine(); 
    testObject.getName(input); 
    System.out.println(testObject.getName(CompanyName)); 
    } 
} 

我test.java

import java.util.Scanner; 
public class test 
{ 
    String Name; 

    public String getName(String CompanyName) 
    { 
     Name = CompanyName; 
     return Name; 
    } 


} 
+6

A面評論。 Java中廣泛使用的命名約定之一是變量名稱應該以小寫字符開頭。 – fivedigit

回答

2

需要聲明的變量companyName,將它傳遞給你的方法之前都首先。

其次,你的方法: -

public String getName(String CompanyName) 
{ 
    Name = CompanyName; 
    return Name; 
} 

覺得奇怪,我。您正在使用與getter and setter相同的方法。

你應該有separate setter and getter: -

public void setName(String companyName) { 
    name = companyName; 
} 

public String getName() { 
    return name; 
} 

並分別調用它們。

testObject.setName(companyName); 

System.out.println(testObject.getName()); 

只是一個建議: -

關注的Java命名約定。字段名稱和方法名稱應以小寫字母開頭。

+0

@Downvoter ..請評論,因爲我不認爲你的意圖是什麼背後downvoting。 –

+0

我upvoted,因爲這是迄今爲止最好的答案。除了回答OP的問題外,您還添加了很好的建議,從OP的代碼示例中得到了很好的建議。 –

+0

+1你用分鐘打敗了我.. :-)完美答案 –

3

您必須聲明變量CompanyName。事情是這樣的:

String CompanyName = "CompanyName1"; 
System.out.println(testObject.getName(CompanyName)); 

既然你正在修改一個變量,你應該做的:

public class test 
{ 
     String Name; 

     public void setName(String CompanyName) {this.Name = CompanyName;} 

     public String getName()     {return Name;} 

}

方法getName將返回「公司」的名稱和setName將修改「公司」的名稱。這樣你可以分開關注

此外,您可以在將來調用方法getName而不修改公司的實際名稱。

3
System.out.println(testObject.getName(CompanyName)); 

什麼CompanyName在這裏?它不是已知的符號。這可能是System.out.println(testObject.getName("CompanyName"));

String CompanyName ="name"; 
System.out.println(testObject.getName(CompanyName); 
+0

請評論downvote ... –

0

重命名「使用getName 「的setName」(因爲它是一個setter),並添加適當的消氣劑類和使用:

public class test 
{ 
    String Name; 

    public void setName(String CompanyName) 
    { 
     Name = CompanyName; 
    } 

    public String getName() { 
     return Name; 
    } 
} 

則:

System.out.println(testObject.getName()); 


還,如果你遵守標準的命名約定,它會幫助你:

  • 類名start以大寫字母
  • 方法,變量和參數名稱以小寫字母
1

我想你wamt你的程序做一些像下面。一個功能setName()將設置傳遞值爲名稱和一個getName()這將返回名稱的值。

import java.util.Scanner; 
public class test 
{ 
    String Name; 

    public String getName() 
    { 
     return Name; 
    } 

    public String setName(String companyName) 
    { 
     this.Name=companyName; 
    } 
} 

現在

public class CompanyAddress 
{ 
    public static void main(String[] args) 
    { 
    Scanner scan = new Scanner(System.in); 
    test testObject = new test(); 
    System.out.println("Enter name: "); 
    String input = scan.nextLine(); 
    testObject.setName(input); 
    System.out.println(testObject.getName()); 
    } 
} 
+0

任何人,如果你認爲更好的格式/拼寫需要檢查。隨意編輯。 M在手機上。 Cand多做關於格式。在此先感謝 –

+0

這是相當不錯的:)。 – dreamcrash

+0

@dreamcrash謝謝你,感謝編輯(y) –

相關問題