从另一个类打印toString()

时间:2012-03-15 17:15:30

标签: java

我之前就同一个项目问了一个问题,但我仍然遇到一些我无法解决的问题。 该项目有一个Person类,Validator类,Customer类和Employee类。 Person类存储有关Customer类扩展person类的人员(姓名,电子邮件)的数据,并将客户编号添加到toString方法。 Employee类还扩展了Person类,并通过覆盖它将社会安全号扩展到toString方法。

在页面底部,我试图从我的客户类或我的员工类中打印toString方法。我想确保根据用户选择的内容(如果他们输入客户信息或员工信息)打印正确的课程

该作业专门说“要将对象的数据打印到控制台,此应用程序应使用名为print的静态方法接受Person对象。”

我想我已经开始了但是我已经在我编码的内容下得到了各种各样的红线。

开始
    public void toString()

向下排列。

我开始认为我在网上查找时遇到了麻烦,所以如果有人可以帮助我,我会很高兴。我的书没有说明如何做到这一点,它显示的所有示例似乎创建输入然后打印它但我试图从用户那里得到输入,所以我感到困惑。

    import java.util.Scanner;
    public class PersonApp 
    {


public static void main(String[] args) 
{
    //welcome user to person tester
    System.out.println("Welcome to the Person Tester Application");
    System.out.println();

    Scanner in = new Scanner(System.in);


    //set choice to y
    String choice = "y";
    while (choice.equalsIgnoreCase("y"))
    {

        //prompt user to enter customer or employee
        System.out.println("Create customer or employee (c/e): ");
        String input = in.nextLine();

        if (input.equalsIgnoreCase("c"))
        {
            String firstName = Validator.getString(in, "Enter first name: ");
            String lastName = Validator.getString(in, "Enter last name: ");
            String email = Validator.getEmail(in, "Enter email address: ");
            String custNumber = Validator.getString(in, "Customer number: ");
            Customer customer = new Customer(firstName, lastName, email, custNumber);


        }

        else if(input.equalsIgnoreCase("e"))
        {
            String firstName = Validator.getString(in, "Enter first name: ");
            String lastName = Validator.getString(in, "Enter last name: ");
            String email = Validator.getEmail(in, "Enter email address: ");
            int empSoc = Validator.getInt(in, "Social security number: ");
            Employee employee = new Employee(firstName, lastName, email, empSoc);
        }

    public void toString()
    {
        Person p;
        p = c;
        System.out.println(c.toString());

        p = e;
        System.out.println(e.toString());
    }

    System.out.println("Continue? y/n: ");
    choice = in.nextLine();
    System.out.println();


}
}
    }

2 个答案:

答案 0 :(得分:3)

您无法在其他方法中定义方法。在toString中定义括号的方式main,这是非法的。

此外,您无法toString返回void,因为它会覆盖toString中的Object方法。重命名您的方法或让它返回String

答案 1 :(得分:0)

您的toString方法需要移出main方法。它还需要返回一个字符串。您可能必须通过其他名称调用该方法。此外,如果Employee和Validator位于单独的包结构中,则必须导入