Java继承和多态性计划

时间:2016-11-14 00:01:02

标签: java inheritance polymorphism

我是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);
}
}

1 个答案:

答案 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();
....