我无法让这个工作,方法&实例变量

时间:2012-11-24 17:57:34

标签: java variables methods instance

我是编程的新手,如果这是一个愚蠢的错误,我很抱歉,但我一直收到这个错误"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));
  }
}   

my test.java

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

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


}

5 个答案:

答案 0 :(得分: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而无需修改公司的实际名称。

答案 1 :(得分:3)

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

CompanyName这里有什么?它不是已知的符号。可能是System.out.println(testObject.getName("CompanyName"));

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

答案 2 :(得分: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命名约定。字段名称和方法名称应以小写字母开头。

答案 3 :(得分:1)

我认为您希望您的程序执行以下操作。函数setName()将传递的值设置为name,一个getName()将返回name的值。

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());
  }
}   

答案 4 :(得分:0)

将“getName”重命名为“setName”(因为它是一个setter)并为您的类添加一个合适的getter并使用它:

public class test 
{
    String Name;

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

    public String getName() {
        return Name;
    }
}

然后:

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


此外,如果您遵守标准命名约定,它将对您有所帮助:

  • 班级名称以大写字母开头
  • 方法,变量和参数名称以小写字母
  • 开头