
Лекции Java / 04. Исключительные ситуации и их обработка. Наследование и его особенности.pptx
.pdf
Выбрасывание исключений
nОбъявляемые и необъявляемые исключения, выбрасываемые вызываемыми методами и операторами
nЯвно (принудительно) выбрасываемые исключения
throw referenceToThrowableObject;
throw new NoSuchAttributeException(name);
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
21 |

Создание типов исключений
nСоздается новый тип, наследующий от более широкого типа, подходящего по смыслу (например, java.lang.IndexOutOfBoundsException)
nСамо то, что выбрасывается исключение более узкого типа, несет в себе информацию
nВ состав нового типа могут вводиться новые поля и методы
nЧаще всего класс содержит только 2 конструктора (по умолчанию и с параметром-строкой), просто вызывающие конструкторы родительского класса
nСовременные среды разработки облегчают создание собственных классов исключений
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
22 |

Отладка приложений
Собственные средства
nДобавление дополнительного кода
nВывод данных на печать
nВывод данных в системные журналы
(logging)
nСоздание дополнительных методов проверки
Отладчики (debuggers)
nВ составе JDK, в составе среды разработки (IDE),
отладчики сторонних компаний
nИспользование точек останова, пошаговых режимов, просмотра состояния объектов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
23 |

Самарский государственный аэрокосмический университет имени академика С.П. Королёва
Лекция 4.2
Наследование и его особенности
© Составление, Гаврилов А.В., 2013
Самара
2013

План лекции
nВиды наследования
nРасширение классов
nПереопределение методов
nСокрытие полей
nЗавершенные и абстрактные методы и классы
nИнтерфейсы и их описание
nИспользование интерфейсов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
25 |

Наследование в Java
Виды наследования
n Класс
•Расширяет класс
•Реализует интерфейсы
Наследование как типа, так и реализации
n Интерфейс
• Расширяет интерфейсы
Наследование ТОЛЬКО типа
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
26 |

Расширение классов
n Класс может расширить только один класс
class MyClass1 {
}
class MyClass2 extends MyClass1 {
}
nЕсли родительский класс не указан явно, родительским становится класс java.lang.Object
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
27 |

Конструкторы дочерних классов
nВызываются для создания объектов дочерних классов
nМогут вызывать друг друга по ключевому слову this()
nВ первой строчке должны вызывать конструкторы базового класса по ключевому слову super()
nКлючевое слово super() может не
использоваться, только если в родительском классе существует конструктор по умолчанию
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
28 |

Порядок создания объекта
n Порядок вызова конструкторов:
•Вызов конструктора базового класса
•Присваивание исходных значений полям объекта посредством выполнения соответствующих выражений и блоков инициализации
•Выполнение инструкций в теле конструктора (конструкторов)
nСостояние объекта
инициализируется «послойно» от Object до конкретного класса
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
29 |

Забавный пример
class SuperShow {
public String str = "SuperStr";
public void show() { System.out.println("Super.show: " + str);
}
}
class ExtendShow extends SuperShow { public String str = "ExtendStr";
public void show() { System.out.println("Extend.show: " + str);
}
}
Самарский государственный аэрокосмический университет имени академика С.П. Королёва |
30 |