Я новичок в Java и, скорее всего, сделал глупую ошибку в своем коде. В частности, у меня возникают проблемы с основными аргументами, прося и сохраняя объекты сканера для ссылки на другие подклассы. Я считаю, что части Person, Student, Employee, Faculty и Staff верны, но я не могу понять часть драйвера. Ниже приведена домашняя проблема. Заранее благодарю за помощь или совет!Программа наследования и полиморфизма Java
ПРОБЛЕМА ПРОБЛЕМЫ: Создайте класс под названием Person и его два подкласса, учащийся и служащий. Создайте подклассы факультета и персонала 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;
}
}
Объект Факультет имеет рабочее время и ранг (обе строки), в то время как объект Staff имеет заголовок (в виде строки).
Для классов учеников, преподавателей и сотрудников создайте методы toString, которые хранят информацию об объекте (в формате, показанном в примерах ниже).
Проверьте свои классы в классе драйвера (в том же файле), который запрашивает у пользователя, какой тип объекта они должны были бы создать, а также какую информацию они хотели бы иметь. Затем программа использует метод toString объекта для печати информации об этом объекте. Образца Run # 1
Введите 1) Для того, чтобы создать студент 2) Для того, чтобы создать сотрудник: 1
Введите имя: Walter D. Graham
Введите адрес: 4737 Стадион Drive Whitinsville, MA 01588
Enter номер телефона: 508-266-2108
Введите адрес электронной почты: [email protected]
Введите статус студента: Младший
Слушатель: Walter D. Graham статус: Младший Адрес: 4737 Стадион Drive Whitinsville, MA 0158 8 Номер телефона: 508-266-2108 Адрес электронной почты: walterdgraham @ university. Edu Образец Run # 2
Введите 1) Для того, чтобы создать студента 2) Для того, чтобы создать сотрудника: 2
Введите имя: Kimberly Д. Дэвис
Введите адрес: 795 University Hill Road Decatur, IL 62522
Введите номер телефона: 217-519-6747
Введите адрес электронной почты: kimdavis @ school.Edu
Введите 1) Для того, чтобы создать факультет член 2) Для того, чтобы создать сотрудник: 1
Введите номер офиса: 724
Введите зарплату: 84101
Введите даты наняты (мм/дд/гг): 06/12/92
Введите рабочие часы: 5-7pm, пн-чт
Введите Оценка: адъюнкт-профессор
Факультет: Kimberly Д. Дэвис ранг: адъюнкт-профессор Зарплата: $ 84101 Дата Наемные: 06/12/92
Время работы: 5-7 вечера, пн-чт Офис: 724 Адрес: 795 University Hill Road Decatur, IL 62522 Номер телефона: 217-519-6747 Электронная почта: kimdavis @ school. Edu
ВОДИТЕЛЯ PORTION ЧТО Я НАПИСАЛ:
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);
}
}
Можете ли вы построить [** m ** cve] (https://stackoverflow.com/help/mcve) для нас, пожалуйста? – WorldSEnder
Я не знаю, как ответить на этот вопрос в его нынешнем виде. Какая фактическая проблема у вас есть? –
Программа не принимает входы сканера: Исключение в потоке «main» java.lang.RuntimeException: Неисполнимый исходный код - несовместимые типы: java.lang.String не может быть преобразовано в человека. \t у человека.Driver.main ( – 3viline