Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 44

Создать суперкласс и определить общие методы для данного класса

10.12.2016, 12:10. Показов 3468. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть задание:
В следующих заданиях требуется создать суперкласс (абстрактный класс, интерфейс) и определить общие методы для данного класса. Создать подклассы, в которых добавить специфические свойства и методы. Часть методов переопределить. Создать массив объектов суперкласса и заполнить объектами подклассов. Объекты подклассов идентифицировать конструктором по имени или идентификационному номеру. Использовать объекты подклассов для моделирования реальных ситуаций и объектов.
Создать приложение Университет. Создать суперкласс Person и подклассы Преподаватель, Сотрудник, Студент, Абитуриент. В каждом подклассе добавить специфичные атрибуты и методы. Сформировать состав Факультета из представителей разных подклассов. Обеспечить автоматическое назначение ID при создании нового объекта.
Я пытался сделать, но у меня выдает ошибку, помогите пожалуйста
......
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
public  class Person {
    private String name;
    private int Date;
    private int age;
    public String getName() {
        return name;
    }
    public int getDate() {
        return Date;
    }
    public int getAge() {
        return age;
    }
 
    public Person(String name, int Date, int age) {
        this.name = name;
        this.Date = Date;
        this.age = age;
    }
    void show() {
        System.out.println("Имя: " + getName() + ". Возраст: " + getAge() + ". Дата рождения, год: " + getDate());
    }
}
 
class Student extends Person {
    //студент
    String Group;
     double MarkMath;
    double MarkFis;
     double MarkInf;
 
    public Student(String name, int date, int age,  String Group, double MarkMath,double MarkFis,double MarkInf ) {
        super(name, date, age);
        Group = Group;
        MarkMath = MarkMath;
        MarkFis = MarkFis;
        MarkInf = MarkInf;}
    public double Method2 (double MarkMath, double MarkFis, double MarkInf){
        double Mk;
        Mk = (MarkMath + MarkFis+ MarkInf)/3;
        return Mk;
    }
    
    public void setGroup(String group) {
        Group = group; 
    }
    public double getMarkMath() {
        return MarkMath;
    }
    public double getMarkFis() {
        return MarkFis;
    }
    public double getMarkInf() {
        return MarkInf;
    }
    void show(){
        System.out.println("Имя: " + getName() + ". Возраст: " + getAge() + ". Дата рождения, год: " + getDate()
                + ". Группа: " + Group + ". Средний балл: " + Method2(MarkMath,  MarkFis,  MarkInf));
    }
}
 
 class Enrolle extends Person {
    //Абитуриент
    String Faculty; //Факультет
    int Bal; //Баллы
    public Enrolle(String name, int date, int age, String Faculty,int Bal) {
        super(name, date, age );
        Faculty = Faculty;
        Bal = Bal;
    }
   public String getFaculty() {
    return Faculty;
}
   public int getBal() {
    return Bal;
}
   void show(){
       System.out.println("Имя: " + getName() + ". Возраст: " + getAge() + ". Дата рождения, год: " + getDate()
                + ". Напрвление подготовки: " + Faculty + ". Вступительные баллы: " + Bal);
   }
   
}
 
 
class Teacher extends Person {
    //Преподаватель
     String Dol;// Должность
     String Subject;//Предмет который ведет
 
 
    public Teacher( String name, int date, int age, String Dol, String Subject) {
        super(name, date, age);
        Dol = Dol; 
        Subject = Subject;}
    public double Method1 (String Dol){
        double koef;
        if (getDol()=="Преподаватель")
            koef = 1.7;
        else
            koef = 1.3;
        return koef;
    }
    public String getDol() {
        return Dol;
    }
    public String getSubject() {
        return Subject;
    }
    void show() {
        System.out.println("Имя: " + getName() + ". Возраст: " + getAge() + ". Дата рождения, год: " + getDate()
                + ". Должность: " + Dol + ". Предмет: " + Subject+". Коэф. зарплаты: "+Method1(Dol));
    }
 
}
 
 
 class Employee extends Person {
    //Сотрудник
     String Position; //Должность
   
 
    public Employee( String name, int date, int age, String Position) {
        super(name, date,  age);
        Position = Position;   
    }
    public String getPosition() {
        return Position;
    }
    void show (){
        System.out.println("Имя: " + getName() + ". Возраст: " + getAge() + ". Дата рождения, год: " + getDate()
                + ". Должность: " + Position);
    }
}
 
class Demo {
    public static void main(String[] args) {
    
    
        Person arr[] = new Person[14];
         arr [1] = new Student("Артем Прокофьев",1997, 20, "ФТ-972421", 4,5,3);
         arr [2] = new Student("Василий Иванов",1995, 22,  "РИ-456015", 4,5,5);
         arr [3] = new Student("Мария Иванова",1997,  20,  "МТ-120036", 5,3,3);
         arr [4] = new Student("Иван Некрасов", 1999, 18, "РИ-130013", 4,4,3);
         
         arr [5] = new Teacher("Марья Никаноров",1971, 35,  "Преподаватель", "Экономика");
         arr [6] = new Teacher("Александр Москвин",1969, 41,  "Аспирант", "Дискретная математика");
         arr [7] = new Teacher("Светлана Ивановна",1972, 39,  "Аспирант", "Физика");
         arr [8] = new Teacher("Петр Назаров", 1962,59,  "Преподаватель", "Философия");
         
         arr [9] = new Enrolle("Елизавета Кононова", 2000,17,  "Приборостроение",195);
         arr [10] = new Enrolle("Инакентий Дроздов", 1999, 18,  "Информационная безопасность", 230);
         arr [11] = new Enrolle("Елена Николаева", 2000,17,  "Лингвистика", 152);
         
         arr [12] = new Employee("Алексадр Петров", 1990,36,  "Администартор");
         arr [13] = new Employee("Валерия Шляпникова", 1989,29,  "Секретарь");
         arr [14] = new Employee("Светлана Иванова", 1973,45,  "Вахтер");
        
         Vis(arr);
}
    private static void Vis(Person [] arr){
        for (int i=0; i<15;i++)
            arr[i].show();
    }
}
......
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2016, 12:10
Ответы с готовыми решениями:

Создать описание класса, содержащего методы (функции) для вычисления
2.Создать описание класса,содержащего методы(функции) для вычисления и вывода на экран в текстовый файл разницы максимум и минимум из K...

Написать функцию для просмотра по всем юношам данного класса, всем девушкам данного класса
Нужно написать функцию для просмотра по всем юношам данного класса, всем девушкам данного класса. Если файл называется BazaDannih фамилия...

Создать стек сплошным представлением и продемонстрировать методы класса для стека из 15 элементов
нужно создать стек сплошным представлением и продемонстрировать методы класса для стека из 15ти элементов. Не могу понять как описать...

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
10.12.2016, 12:46
Цитата Сообщение от Kusgrus Посмотреть сообщение
Я пытался сделать, но у меня выдает ошибку
какую?
0
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 44
10.12.2016, 15:06  [ТС]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 14
at Laba2.Demo.main(Demo.java:23)

Это ошибка, которую выдает
0
58 / 57 / 47
Регистрация: 31.10.2016
Сообщений: 182
10.12.2016, 16:27
Цитата Сообщение от Kusgrus Посмотреть сообщение
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 14
at Laba2.Demo.main(Demo.java:23)
Это ошибка, которую выдает
У тебя массив содержит 14 элементов:
Java
1
Person arr[] = new Person[14];
А значит номер первого 0, а последнего 13.
А ты обращаешься к его элементам ведя отсчет с единицы до 14:
Кликните здесь для просмотра всего текста
Цитата Сообщение от Kusgrus Посмотреть сообщение
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    arr [1] = new Student("Артем Прокофьев",1997, 20, "ФТ-972421", 4,5,3);
    arr [2] = new Student("Василий Иванов",1995, 22, *"РИ-456015", 4,5,5);
    arr [3] = new Student("Мария Иванова",1997, *20, *"МТ-120036", 5,3,3);
    arr [4] = new Student("Иван Некрасов", 1999, 18, "РИ-130013", 4,4,3);
    arr [5] = new Teacher("Марья Никаноров",1971, 35, *"Преподаватель", "Экономика");
    arr [6] = new Teacher("Александр Москвин",1969, 41, *"Аспирант", "Дискретная математика");
    arr [7] = new Teacher("Светлана Ивановна",1972, 39, *"Аспирант", "Физика");
    arr [8] = new Teacher("Петр Назаров", 1962,59, *"Преподаватель", "Философия");
    arr [9] = new Enrolle("Елизавета Кононова", 2000,17, *"Приборостроение",195);
    arr [10] = new Enrolle("Инакентий Дроздов", 1999, 18, *"Информационная безопасность", 230);
    arr [11] = new Enrolle("Елена Николаева", 2000,17, *"Лингвистика", 152);
    arr [12] = new Employee("Алексадр Петров", 1990,36, *"Администартор");
    arr [13] = new Employee("Валерия Шляпникова", 1989,29, *"Секретарь");
    arr [14] = new Employee("Светлана Иванова", 1973,45, *"Вахтер");

Должно быть так:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    arr [0] = new Student("Артем Прокофьев",1997, 20, "ФТ-972421", 4,5,3);
    arr [1] = new Student("Василий Иванов",1995, 22, *"РИ-456015", 4,5,5);
    arr [2] = new Student("Мария Иванова",1997, *20, *"МТ-120036", 5,3,3);
    arr [3] = new Student("Иван Некрасов", 1999, 18, "РИ-130013", 4,4,3);
    arr [4] = new Teacher("Марья Никаноров",1971, 35, *"Преподаватель", "Экономика");
    arr [5] = new Teacher("Александр Москвин",1969, 41, *"Аспирант", "Дискретная математика");
    arr [6] = new Teacher("Светлана Ивановна",1972, 39, *"Аспирант", "Физика");
    arr [7] = new Teacher("Петр Назаров", 1962,59, *"Преподаватель", "Философия");
    arr [8] = new Enrolle("Елизавета Кононова", 2000,17, *"Приборостроение",195);
    arr [9] = new Enrolle("Инакентий Дроздов", 1999, 18, *"Информационная безопасность", 230);
    arr [10] = new Enrolle("Елена Николаева", 2000,17, *"Лингвистика", 152);
    arr [11] = new Employee("Алексадр Петров", 1990,36, *"Администартор");
    arr [12] = new Employee("Валерия Шляпникова", 1989,29, *"Секретарь");
    arr [13] = new Employee("Светлана Иванова", 1973,45, *"Вахтер");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2016, 16:27
Помогаю со студенческими работами здесь

Общие методы для классов
Доброго времени суток и с наступившим! Есть несколько классов, в которых есть две функции (одинаковый код для всех классов). Можно...

Как правильно создать массив объектов текущего класса в методе данного класса?
Привет! Ставится задача создания метода, который формирует массив объектов. Правильно ли делать этот метод внутри класса, экземпляром...

Создать массив из созданных объектов класса Студент. Для каждого проинициализировать поля и вызвать методы
Написать программу, которая содержит класс с полями и методами, характеризующего отдельного студента. Создать массив из созданных объектов...

Создать массив из созданных объектов класса Студент. Для каждого проинициализировать поля и вызвать методы
Написать программу, которая содержит класс с полями и методами, характеризующего отдельного студента. Создать массив из созданных объектов...

Создать класс наследник от класса TForm1. Определить конструктор без параметров для дочернего класса
Доброго всем времени суток. Помогите решить проблемку. Хочу создать класс наследник от класса TForm1. Делаю это (наследование) для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru