* Изходен код от упражнение 3, 2015
Публикувано на 20 октомври 2015 в раздел ПИК3 Java.
Създайте клас Person съдържащ член променливи “name” (String) и “phone” (String). Защитете “name” така, че да не може да бъде променян (да е private и да има само get метод). За “phone” оставете public модификатор за достъп и не правете get и set методи. Реализирайте метод “String toString()”, в който се връща низ със съдържание името и телефона на човека разделени със запетая. Направете само конструктор с подадени параметри. Не пишете конструктор по подразбиране.
Направете клас Teacher, който наследява Person и добавя член променлива: enum Position{PROFFESOR , DOCENT, ASSISTANT}
Направете два конструктора – един с подадени параметри name, phone и Position, и един с подадени само name и phone, при който Position се приема по подразбиране ASSISTANT
Направете клас “Course” с член променливи Sting name - име на курс – и Teacher tutor. Направете само конструктор с подадени параметри. Не правете get и set методи.
Направете клас “Student” наследяващ “Person” и добавящ следните член променливи:
int faknum – факултетен номер
Course[] courses – списък с учебни предмети
double[] grades – оценки по тези учебни предмети
Направете конструктор приемащ име, телефон и факултетен номер, в който масивите се инициализират празни с по 30 елемента. Предпазете масива grades така, че да може да бъдат въвеждани само и единствено оценки в интервала от 2,00 до 6,00.
Направете клас с main метод, в който създайте масив от тип Person, в който въведете два обекта от тип Student и един от тип Teacher. И за трите елемента отпечатайте резултата от техните “toString” методи в конзолата.
Решение:
public class Upr3 { public static void main(String[] args) { Student st1 = new Student("Petar", "1234", 1234); Student st2 = new Student("Ivan", "5678", 5678); Teacher t = new Teacher("Philip", "0893690135", Position.ASSISTANT); Course c = new Course("PIK3", t); try{ st1.setCourse(c, 4.00, 0); st2.setCourse(c, 5.00, 0); } catch(Exception e){ System.out.println(e.getMessage()); } Person[] arr = new Person[]{ st1, st2, t}; for(Person p: arr) { System.out.println(p.toString()); } } } enum Position { ASSISTANT, DOCENT, PROFESSOR }; class Person { private String name; String phone; Person(String name, String phone){ this.name = name; this.phone = phone; } String getName() { return this.name; } public String toString() { return this.getName() + ", " + this.phone; } } class Teacher extends Person { Position pos; Teacher(String name, String phone ,Position pos) { super(name, phone); this.pos = pos; } Teacher(String name, String phone) { super(name, phone); this.pos = Position.ASSISTANT; } } class Course { String name; Teacher tutor; Course(String name, Teacher tutor){ this.name = name; this.tutor = tutor; } } class Student extends Person { int faknum; private Course[] courses; private double[] grades; private static int courses_count = 30; Student(String name, String phone, int faknum){ super(name, phone); this.faknum = faknum; courses = new Course[courses_count]; grades = new double[courses_count]; } void setCourse(Course c, double grade, int n) throws Exception{ if(grade<2.00 || grade>6.00){ throw new Exception("Невалидна оценка"); } if(n<0 || n>=courses_count){ throw new Exception("Максималният индекс е 30"); } this.courses[n] = c; this.grades[n] = grade; } }
Добави коментар