【发布时间】:2012-09-15 05:21:26
【问题描述】:
我之前在同一个项目上问过一个问题,但我仍然遇到无法解决的问题。 该项目有一个 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();
}
}
}
【问题讨论】:
-
toString 返回一个字符串,而不是 void。 “红色文本”上的工具提示应该让您知道大部分时间出了什么问题。
-
我同意,当你明白你不理解它时,你会通过从互联网上复制代码来搞砸事情。在这种情况下,更大的问题是您将方法
toString的代码粘贴到另一个 (main) 的中间。那个代码也是没用的。你应该回去一次一步。 -
@madth3 我实际上是自己编写了那部分代码,然后当它不起作用时,我开始在互联网上搜索帮助。我不知道那更好,但至少我可以说我自己搞砸了 LOL
标签: java