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

СКТ - Лекция №2

.pdf
Скачиваний:
10
Добавлен:
09.05.2015
Размер:
374.2 Кб
Скачать

Иерархия исключений

Контролируемые исключения проверяются компилятором (то есть компилятор проверяет, что ваш код где-то обрабатывает их).

Неконтролируемые исключения (или исключения времени выполнения) не проверяются компилятором.

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

Генерация исключений

public Person(String name, int age, int height, String eyeColor, String gender) {

this.name = name; this.age = age; this.height = height;

this.eyeColor = eyeColor;

!

if (!gender.equals(GENDER_FEMALE) || !gender.equals(GENDER_MALE)) throw new IllegalArgumentException();

this.gender = gender;

}

Наследование

Классы, которые по иерархии находятся выше данного класса, называются суперклассами этого класса.

Каждый конкретный класс является подклассом каждого класса, расположенного в иерархии выше его. Подкласс наследует свойства своего суперкласса.

Класс java.lang.Object находится в вершине иерархии классов, то есть каждый класс Java является подклассом Object и наследует его свойства.

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

Конструктор

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

Конструктор всегда имеет то же имя, что и класс, в котором он используется, и у него нет возвращаемого типа.

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

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

Уровни доступа к конструкторам

Абстрактные классы и методы

Любой класс может быть объявлен абстрактным;

Абстрактные классы не допускают создания своих экземпляров;

Абстрактный метод не может содержать тела метода;

Класс, содержащий абстрактный метод, должен объявляться как абстрактный.

Интерфейс

Интерфейс - это именованный набор моделей поведения (и/или постоянных элементов данных), который должен обеспечить реализатор. Интерфейс определяет поведение реализации, но не то, каким образом оно достигается.

Методы, определенные в интерфейсе, не имеют тела метода. За предоставление тела метода отвечает реализатор интерфейса (как в случае с абстрактными методами).

Иерархии интерфейсов определяются как для классов, за исключением того, что один класс может реализовать столько угодно интерфейсов.

Вложенные классы

Вложенный класс - это класс, определенный в другом классе.

Java-классы можно определить с любым уровнем доступа, в том числе public,private или protected.

Как правило, вложенный класс используется для случаев, когда нужен класс, тесно связанный с классом, в котором он определен. Вложенный класс имеет доступ к данным private в пределах своего включающего класса.

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

Язык Java позволяет объявлять классы почти везде, даже в середине метода, если это необходимо, и даже без присвоения классу имени. По сути, это просто особенность компилятора, но бывают моменты, когда анонимные внутренние классы чрезвычайно удобны.

Коллекции

Коллекции

Коллекция (контейнер) - это просто объект, который объединяет несколько элементов в единое целое. Коллекции используются для хранения, поиска, обработки и обмена данными.

Как правило, коллекции имеют аналоги из реального мира, например колода карт или телефонный справочник (отображение имен на телефонные номера).