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


}
4

5 回答 5

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。

于 2012-11-24T17:58:28.997 回答
3
System.out.println(testObject.getName(CompanyName));

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

或者

String CompanyName ="name";
System.out.println(testObject.getName(CompanyName);
于 2012-11-24T17:59:40.247 回答
3

首先,您需要在将变量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 命名约定。字段名称和方法名称应以小写字母开头。

于 2012-11-24T18:00:17.227 回答
2

我认为您希望您的程序执行以下操作。一个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());
  }
}   
于 2012-11-24T18:05:06.967 回答
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());


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

  • 类名以大写字母开头
  • 方法、变量和参数名称以小写字母开头
于 2012-11-24T18:01:15.680 回答