我是Java新手,很可能在我的代码上犯了一个愚蠢的错误。特别是,我遇到了主要参数的问题,要求并保存扫描仪对象以链接到其他子类。我相信人员,学生,员工,教师和员工部分是正确的,但我无法弄清楚司机部分。以下是作业问题。提前感谢您的任何帮助或建议!
家庭作业问题: 设计一个名为Person的类及其两个子类Student和Employee。制作员工的教职员工子类。
Person对象具有姓名,地址,电话号码和电子邮件地址(所有字符串)。
学生具有班级身份(新生,大二,大三或大四)。将状态定义为最终的String变量。
员工有办公室编号,工资(包括总金额)和雇用日期。使用下面定义的MyDate类为雇用日期创建一个对象:
class MyDate{
private String date; //date in the form mm/dd/yy
public MyDate(String date){
this.date = date;
}
public String getDate(){
return date;
}
}
Faculty对象具有办公时间和等级(两个字符串),而Staff对象具有标题(作为字符串)。
对于Student,Faculty和Staff类,创建toString方法,用于存储有关对象的信息(采用以下示例中显示的格式)。
在Driver类(在同一文件中)测试您的类,询问用户他们要创建的对象类型以及他们希望它拥有的信息。 然后程序使用对象的toString方法打印有关该对象的信息。 样品运行#1
输入
1)创建学生
2)创建员工:1
输入姓名:Walter D. Graham
输入地址:4737 Stadium Drive Whitinsville,MA 01588
输入电话号码:508-266-2108
输入电子邮件:walterdgraham@university.edu
输入学生的状态:初级
学生:Walter D. Graham
现状:少年
地址:4737 Stadium Drive Whitinsville,MA 01588
电话号码:508-266-2108
电子邮件地址:walterdgraham @ university。 EDU
样本运行#2
输入
1)创建学生
2)创建员工:2
输入姓名:Kimberly D. Davis
输入地址:795 University Hill Road Decatur,IL 62522
输入电话号码:217-519-6747
输入电子邮件:kimdavis@school.edu
输入
1)创建一名教师
2)创建一名工作人员:1
输入办公室号码:724
输入工资:84101
输入聘用日期(mm / dd / yy):06/12/92
进入办公时间:周一至周五下午5-7点
进入职级:兼职教授
学院:Kimberly D. Davis
等级:兼职教授
薪酬:84101美元
聘用日期:06/12/92
办公时间:周一至周四下午5-7点 办公室:724 地址:795 University Hill Road Decatur,IL 62522 电话号码:217-519-6747 电子邮件:kimdavis @ school。 EDU
我心烦的驱动部队:
package person;
import java.util.Scanner;
public class Driver {
//Testing
public static void main(String[] args) {
int studentOrEmployee;
int facultyOrStaff;
Scanner input = new Scanner(System.in);
System.out.println("Enter");
System.out.println("1)To create a student:");
System.out.print("2)To create and employee: ");
studentOrEmployee= input.nextInt();
System.out.print("\n Enter name: ");
Person name = input.next();
System.out.print("\n Enter address: ");
Person address = input.nextString();
System.out.print("\n Enter phone number: ");
Person phone = input.nextString();
System.out.print("\n Enter email ");
Person email = input.nextString();
if (studentOrEmployee==1) {
System.out.print("\n Enter student’s status: ");
Person classStanding = input.nextString();
System.out.println(student.toString() + "\n");
}
else if ( studentOrEmployee==2) {
facultyOrStaff= input.nextInt();
if (facultyOrStaff==1) {
System.out.print("\nEnter office number: ");
Person office = input.nextInt();
System.out.print("\nEnter salary");
Person salary = input.nextInt();
System.out.print("\nEnter date hired: ");
Person dateHired = input.next();
System.out.print("\nEnter office hours: ");
Person hours = input.nextString();
System.out.print("\nEnter rank: ");
Person rank = input.nextString();
System.out.println(faculty.toString() + "\n");
}
else if (facultyOrStaff==2) {
System.out.print("\nEnter office number: ");
System.out.print("\nEnter office title: ");
Person title = input.nextString();
System.out.println(staff.toString() + "\n");
}
}
Person person = new Person(name,address, phone, email);
Person student = new Student(name, classStanding, address, phone, email);
Person employee = new Employee(name, address, phone, email, office, salary, dateHired);
Person faculty = new Faculty(name, rank, salary, dateHired, hours, address, phone, email, office);
Person staff = new Staff(name, title, address, phone, email, office, salary, dateHired);
}
}
答案 0 :(得分:0)
检查你的声明。如果要保存String,则需要将变量声明为String。
System.out.print("\n Enter name: ");
String name = input.next();
System.out.print("\n Enter address: ");
String address = input.nextString();
System.out.print("\n Enter phone number: ");
String phone = input.nextString();
System.out.print("\n Enter email ");
String email = input.nextString();
....