ТЕСТОВЫЕ ПРИМЕРЫ И РЕЗУЛЬТАТЫ ИХ ОБРАБОТКИ ВРУЧНУЮ



Институт информационных технологий и управления

в технических системах

 

Кафедра информационных технологий и компьютерных систем

 

 

ОТЧЕТ

по лабораторной работе № 11

 

«РАЗРАБОТКА КЛАССА-ШАБЛОНА ДЛЯ СОЗДАНИЯ ОБЪЕКТОВ»

 

по дисциплине «Программирование. Базовые процедуры обработки информации»

 

 
Выполнил студент группы ИВТ/б-11д                                            Орлов И.В. Проверил доцент Петров И.И.  


                                                         

 

                                                         

 

 

Севастополь

2020

 

ЦЕЛЬ РАБОТЫ

 

Целью данной работы является ознакомление с возможностями реализации структур данных, объединяющих данные различных типов (записей) на Java, а также с принципом инкапсуляции данных и методов (подпрограмм) для работы с ними, получение навыков разработки и использования простых классов и созданных на их основе объектов.

 

2. ПОСТАНОВКА ЗАДАЧИ

 

Разработать программу, создающую объекты заданного класса, выводящую информацию об объектах и осуществляющую операцию сравнения объектов на равенство. Для создания объектов разработать соответствующий класс-шаблон.

Данные для разработки класса «Класс 1» (название реализуемой сущности и ее свойства) приведены в таблице 2.1.

 

Вариант задания V вычислен по формуле   

 V = (N%14 != 0) ? N%14 : 14; ,

где N – номер студента в списке группы:

1%14=1;

 

 

Таблица 2.1 – Поля (свойства) сущности, которую необходимо описать

в проекте с помощью класса Класс1

Класс1 (сущность 1) Поля (private)
1 Книга Идентификационный код, название, автор, издательство, год выпуска, количество страниц, тип (1 - учебная, 2 - научная, 3 - художественная), количество экземпляров

 

АНАЛИЗ ЗАДАЧИ

Входные данные, выходные данные, функции

И структура программы

 

Согласно заданию, необходимо разработать java-программу, состоящую из двух классов:

1) «Класс1», который описывает свойства и поведение сущности реального мира, заданной вариантом на лабораторную работу (таблица 2.1);

2) класс ObjDemoLab11, содержащий метод main(), в котором должны создаваться и сравниваться объекты – экземпляры сущности «Класс1».

В методе main () нужно предусмотреть следующие действия:

− создание объекта класса «Класс 1» с помощью конструктора с параметрами;

− создание псевдонима для созданного объекта (второй ссылки на объект);

− создание копии объекта с помощью конструктора без параметров;

− создание еще одного объекта (с другими значениями полей) с помощью конструктора с параметрами;

− для всех использованных ссылочных переменных вывод в окно терминала данных об объектах, на которые они ссылаются;

− вывод в окно терминала результатов сравнения объекта с самим собой, со своей копией, с другим объектом (с другими значениями полей) и с null-ссылкой.

Входные данные программы – значения свойств создаваемых объектов. Выходные данные программы (сведения о созданных объектах и результаты их сравнения) выводятся в окно терминала.

 

 

Описание класса-шаблона «Класс 1»

Сущность «Класс 1», согласно заданию, имеет следующие свойства (таблица 2.1): идентификационный код, название, автор, издательство, год выпуска, количество страниц, тип (1 - учебная, 2 - научная, 3 - художественная), количество экземпляров. Значения этих свойств для каждого экземпляра класса должны храниться в соответствующих переменных экземпляра. Следовательно, в классе будет определено пять переменных экземпляра:

id – целочисленная (int);

name – ссылка на объект класса String (символьную строку);

дописать для остальных полей

Все поля (переменные экземпляра) будут объявлены private (скрыты в классе).В правильно записанных Java-программах public-методы определяют, как можно использовать private члены-переменные.

 

Поведение сущности характеризуют следующие методы:

1) конструктор без параметров;

2) конструктор с параметрами;

3) методы-геттеры (для каждого поля);

4) методы-сеттеры (для каждого поля);

5) метод toString(), выдающий строку описания объекта;

6) метод equals(), сравнивающий объект с другим объектом того же класса (переданным в метод как параметр) на равенство (объекты равны, если ссылки на них равны (один и тот же объект), иначе, если их одноименные поля равны).

 

Конструктор – это специальный метод класса, который определяет, какие действия должны выполняться при создании объекта данного класса.

 Он должен иметь спецификатор public, т.к. конструктор запускается из другого класса. Имя метода-конструктора совпадает с именем класса.

В классе будет два перегруженных конструктора, отличающихся списком параметров: конструктор без параметров (инициализирует поля создаваемого объекта нулевыми значениями) и конструктор с параметрами (инициализирует соответствующие поля объекта переданными аргументами).

Каждый метод-геттер возвращает значение соответствующего поля объекта (параметров не имеет, тип возвращаемого значения соответствует типу поля).

Каждый метод-сеттер позволяет установить значение соответствующего поля (тип параметра совпадает с типом поля, метод не возвращает значения – void).

Метод toString() (без параметров) возвращает ссылку на объект класса String (символьную строку описания объекта). Этот метод переопределяет метод суперкласса Object с той же сигнатурой. Если метод toString() не переопределяется в классе, то при обнаружении ссылки на объект методы printf () и println() будут использовать для вывода информации об объекте метод toString(), определенный в суперклассе (будет выводиться значение ссылки – адреса объекта). Если же метод toString() переопределен в классе, то доступ к аналогичному методу суперкласса становится невозможным.

Метод equals(), сравнивающий текущий объект (объект, запустивший метод) с другим объектом того же класса на равенство. Метод возвращает значение типа boolean. В качестве параметра в метод передается ссылка на объект того же класса («Класс1»). Таким образом, метод equals() данного класса перегружает одноименный метод суперкласса Object, в который передается в качестве параметра ссылка на объект класса Object. Имеет место перегрузка, а не переопределение, т.к. сигнатуры методов в суперклассе и подклассе - разные. Другими словами, если мы вызовем от имени объекта класса «Класс1» метод equals() с аргументом-ссылкой на объект класса «Класс1», то запустится метод, определенный в классе «Класс1». Если же в метод будет передан аргумент-ссылка на объект класса Object, то запустится метод класса Object, который сравнивает лишь адреса объектов.

 

ТЕСТОВЫЕ ПРИМЕРЫ И РЕЗУЛЬТАТЫ ИХ ОБРАБОТКИ ВРУЧНУЮ

Для тестирования работы программы, в ней будут созданы объекты со следующими значениями полей:

1)…,

2)…,

… .

 

 Структуры данных, которые должны присутствовать в памяти после создания программой всех объектов,  изображены на рисунке 4.1 (выполнить подобно рисункам 3.1 – 3.3 в методических указаниях).

 


   Рисунок 4.1 – Структуры данных для тестового примера

Далее нужно назвать и обосновать ожидаемые результаты сравнения объектов.

СТРУКТУРА ПРОЕКТА

Структура проекта изображена на рисунке 5.1.

 

 

 


Рисунок 5.1 – Структура проекта

 

 

ТЕКСТ ПРОГРАММЫ

Согласно пункту 2.8.1. методических указаний к лабораторным работам, текст программы должен быть отформатирован следующим образом:

1) шрифт: arial, 12 пт, полужирный;

2) абзац:

− выравнивание по левому краю;

− уровень – основной текст;

− отступ слева – 0;

− отступ справа – 0;

− интервал перед – 0;

− интервал после – 0;

− первая строка – нет (отступа или выступа),

− междустрочный интервал – множитель, значение – 1,2;

3) комментарии (обязательно должны присутствовать в тексте программы) выделить курсивом и синим цветом.

Для вывода использовать только вызовы метода System.out.printf(). Не использовать операцию конкатенации строк!!!


Дата добавления: 2021-01-21; просмотров: 59; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!