Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_2 Головков И.Е. 12002108 ООП

.docx
Скачиваний:
7
Добавлен:
26.06.2024
Размер:
137.98 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ БЕЛОГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ (НИУ «БелГУ») ИНСТИТУТ ИНЖЕРЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

КАФЕДРА ИНФОРМАЦИОННЫХ И РОБОТОТЕХНИЧЕСКИХ СИСТЕМ

Отчет по лабораторной работе №2

Вариант №5 Тема работы «Конструкторы и полиморфизм» по дисциплине «Объектно-ориентированное программирование»

студента очного отделения

2 курса группы 12002108

Головкова Игоря Евгеньевича

Проверил:

Резников Н. Г.

Белгород 2022

Цель работы: познакомиться с созданием конструкторов для классов.

Изучить механизм полиморфизма.

Общая постановка задачи:

1. Изучить предлагаемый теоретический материал, а также лекционный материал по данной теме.

2. В класс, разработанный Вами в предыдущей лабораторной работе необходимо добавить четыре конструктора: конструктор без параметров, конструктор с одним параметром, конструктор с полным набором параметров и конструктор копирования.

3. В программе должна выполняться проверка всех разработанных конструкторов. Для проверки необходимо создать отдельный класс с методом main. В методе main создать 4-е объекта, созданных разными конструкторами. Вывести информацию о каждом объекте на консоль.

4. Набрать программу и отладить её работу в среде NetBeans IDE.

5. Подобрать тестовые данные. Протестировать.

6. Оформить отчет по лабораторной работе, включающий:

o титульный лист;

o цель работы;

o постановку задачи для Вашего варианта;

o текст программы на языке Java;

o скриншоты результатов выполнения тестовых примеров;

o ответы на контрольные вопросы.

Индивидуальные данные для выполнения работы:

Вариант №5. Состав класса Dictionary (словарь): язык, количество слов, наличие транскрипции.

Листинг программы:

Файл 1:

public class Dictionary { private String language; private int amountWords; private boolean transcription; public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } public int getAmountWords() { return amountWords; } public void setAmountWords(int amountWords) { this.amountWords = amountWords; } public boolean getTranscription() { return transcription; } public void setTranscription(boolean transcriprion) { this.transcription = transcriprion; } public Dictionary(){ language = ""; amountWords = 0; transcription = false; } public Dictionary(String language){ this.language = language; amountWords = 1; transcription = false; } public Dictionary(String language, int amountWords, boolean transcription){ this.language = language; this.amountWords = amountWords; this.transcription = transcription; } public Dictionary(Dictionary slovar){ language = slovar.language; amountWords = slovar.amountWords; transcription = slovar.transcription; } public void toConsole(){ if (transcription) { System.out.println("Язык: " + language + "\nКоличество слов: " + amountWords + "\nТранскрипция присутствует: Да\n"); } else { System.out.println("Язык: " + language + "\nКоличество слов: " + amountWords + "\nТранскрипция присутствует: Нет\n"); } } }

Файл 2:

public class Lab1 { public static void main(String[] args) { Dictionary slOne = new Dictionary(); Dictionary slTwo = new Dictionary("Немецкий"); Dictionary slThree = new Dictionary("Французский", 5455, true); Dictionary slFour = new Dictionary(slOne); slOne.toConsole(); slTwo.toConsole(); slThree.toConsole(); slFour.toConsole(); } }

Результаты работы java-приложения:

Ответы на контрольные вопросы:

1. Что такое конструктор?

Конструктор – специальный метод объекта

2. Зачем нужен конструктор?

Конструктор решает задачу начальной инициализации полей объекта

3. Что такое полиморфизм?

Полиморфизм – механизм, позволяющий использовать одно имя для

реализации схожих, но технически разных задач

4. Какие виды конструкторов бывают?

Конструктор по умолчанию, с аргументами и копирования

5. Что такое перегрузка метода?

Перегрузка метода заключается в создании метода с таким же именем, но с другим набором параметров.

6. Приведите примеры перегруженных методов.

Например, методы умножения, принимающие int- и double-аргументы: multiply(int a, int b){…}, multiply (double a, double b){…} или multiply(double a, int b){…}.