СВЕДЕНИЯ ОБ ОТЛАДКЕ ПРОГРАММЫ И ПРОВЕРКЕ



ЕЕ РАБОТОСПОСОБНОСТИ

 

 

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

 

Результаты выполнения программы представлены  на рисунке 7.1.   

 

Вставить свои результаты.

            Рисунок 7.1 – Результаты выполнения программы

 

Результаты работы программы при отсутствии в классе Box метода toString () (определение метода было закомментировано в программе) приведены на рисунке 7.2.

 

Вставить свои результаты.

 

Рисунок 7.2 – Результаты работы программы

при отсутствии в классе Box метода toString ()

 

Результаты работы программы при добавлении в метод main() строки

System.out.printf ("b2==(Object)b3: %s\n", b2.equals((Object)b3)); приведены на рисунке 7.3.

 

Вставить свои результаты.

Рисунок 7.3 – Результаты работы программы, осуществляющей

вызовы метода equals() из класса Box (выделено синим) и из

суперкласса Object (выделено красным) для сравнения двух объектов с

одинаковыми значениями полей и разными адресами

 

Проанализируйте значения ссылок на рисунке 7.2 и объясните (опишите здесь) результаты сравнения объектов. Объясните (опишите здесь), какое влияние оказывает изменение типа аргумента (явное преобразование в Object) в вызове метода equals(). Объясните (опишите здесь), почему метод toString () является переопределенным, а метод equals () – перегруженным.

 

На тестовых примерах программа выдала ожидаемый результат, что позволяет сделать вывод о ее работоспособности.

ВЫВОД

 

В ходе  выполнения лабораторной работы были исследованы следующие принципы ООП (и их реализация в Java): принцип инкапсуляции и принцип полиморфизма (параметрический полиморфизм и его частный случай – конструкторский полиморфизм).

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

Класс «Класс1» является классом, по шаблону которого создаются объекты – экземпляры класса. Поэтому все его члены (переменные и методы) являются экземплярными , а статических переменных и методов в классе нет.

Переменные скрыты в классе с помощью спецификатора доступа private. Доступ к ним осуществляется с помощью public-методов класса. Класс содержит два перегруженных конструктора (конструкторский полиморфизм).

В конструкторе с параметрами проблема сокрытия переменных экземпляра локальными параметрами с теми же именами решается с помощью использования ссылки this (ссылка на текущий объект, т.е. объект, запустивший метод).

Любой класс в Java является наследником класса Object. Метод toString() класса «Класс1» переопределяет одноименный метод суперкласса Object, т.к. имеет такую же сигнатуру. Метод equals() класса «Класс1» перегружает одноименный метод суперкласса Object, т.к. сигнатуры у этих методов разные (отличаются типом параметра – параметрический полиморфизм).

Присутствие в классе «Класс1» метода toString() делает невозможным вызов одноименного метода суперкласса Object от имени объекта подкласса.

Метод  equals(), определенный в суперклассе, можно вызвать от имени объекта подкласса, если передать в качестве аргумента ссылку на объект суперкласса.

Для вывода результатов работы программы в методе main () применялся метод System.out.printf(), т.к. он позволяет не использовать операцию конкатенации символьных строк, способствующую появлению в памяти «мусорных» объектов.

 

 
Уважаемые студенты! Обращаю ваше внимание на то, что шаблоны отчетов даются вам для того, чтобы вы научились писать технические отчеты и правильно составлять документацию к программам. Кроме того, я стараюсь вставлять в них важные теоретические сведения. Поэтому настоятельно прошу сначала внимательно прочитать текст шаблона,  при необходимости творчески переработать его в соответствии с данными своего варианта и только затем вставлять результаты работы своей программы.

 

 


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

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






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