2012-11-24 41 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) –

相关问题