Java презентация

Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса В Java два вида интерфейсов: интерфейсы, определяющие контракт для классов посредством методов,

Слайд 1Java
6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ


Слайд 2Интерфейсы
Не являются классами

Ни один из объявленных методов не может быть реализован

внутри интерфейса

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


example01 : объявление интерфейсов: LineGroup.java, Shape.java

interface ИмяИнтерфейса [extends ИмяИнтерфейса1]{
тип Поле = ЗНАЧЕНИЕ;
тип метод();
}

Все объявленные в интерфейсе поля автоматически трактуются как public, static и final

Все объявленные в интерфейсе методы автоматически трактуются как public и abstract


Слайд 3Реализация интерфейсов классом
Класс может реализовывать любое число интерфейсов
Класс обязан реализовать все

методы , полученные от интерфейсов, или объявить себя абстрактным классом.

example02 : реализация интерфейса: Rectangle.java Circle.java Triangle.java
Runner.java

example06 : динамический связывание методов : ShapeCreator.java

[доступ] class ИмяКласса implements Имя1, Имя2,…, ИмяN { /*код класса*/
}


Слайд 4Внутренние классы
В Java можно определить (вложить) один класс внутри определения другого

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

Цели создания внутренних классов:
способ сокрытия реализации
использование в качестве блоков прослушивания событий
возможность независимого наследования внутренними классами

Внутренние классы бывают:
статические, вложенные (nested)
нестатические, внутренние (inner)


Слайд 5Пример применения внутренних классов

Запустить «Двигатель» можно только посредством использования объекта «Корабль»
Класс

«Шлюпка» также является логической частью класса «Корабль», однако данные объекты могут быть использованы независимо от наличия объекта «Корабль»

Слайд 6Внутренние (inner) классы
Нестатические вложенные классы

Объект внутреннего класса всегда ассоциируется (скрыто

хранит ссылку) с создавшим его объектом внешнего класса – внешним (enclosing) объектом.
Методы внутреннего класса имеют прямой доступ ко всем полям и методам внешнего класса.
Доступ к элементам внутреннего класса возможен из внешнего класса только через объект внутреннего класса
Внутренние классы не могут содержать статические атрибуты и методы, кроме констант (final static).
После компиляции объектный модуль, соответствующий внутреннему классу, получит имя Владелец$Внутренний.class.

example07 : внутренние (inner) классы : Ship.java Runner.java


Слайд 7Inner- классы и наследование
public class WarShip extends Ship {
protected class SpecialEngine

extends Engine {}
}

public class Motor extends Ship.Engine {
public Motor(Ship obj) {
obj.super();
}
}

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

Внутренние классы имеют право наследовать другие классы, реализовывать интерфейсы и выступать в роли объектов наследования.

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

example08


Слайд 8Модификаторы спецификации Inner-классов

final
abstract
private
protected
public
example11 : взаимодействие внешнего и

внутреннего классов : Student.java, AnySession.java

Слайд 9Объявление внутри метода
Внутренний класс может быть объявлен также внутри метода или

логического блока внешнего класса.
Видимость такого класса регулируется областью видимости блока, в котором он объявлен.

Внутренний класс сохраняет доступ ко всем
полям и методам внешнего класса
константам, объявленным в текущем блоке кода

Класс, объявленный внутри метода, НЕ МОЖЕТ
быть объявлен как static
содержать статические поля и методы

example12 : внутренний класс, объявленный внутри метода
TeacherLogic.java


Слайд 10Вложенные (nested) классы
При объявлении такого внутреннего класса присутствует служебное слово static,

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

example13 : вложенный класс: Ship.java, RunnerShip.java

example14 : класс вложенный в интерфейс: Faculty.java, University.java


Слайд 11Анонимные (anonymous) классы
Анонимные (безымянные) классы применяются для
придания уникальной функциональности отдельно

взятому объекту
обработки событий,
реализации блоков прослушивания и т.д.

Объявление анонимного класса выполняется одновременно с созданием его объекта посредством оператора new.
Анонимные классы эффективно используются, как правило, для реализации (переопределения) нескольких методов и создания собственных методов объекта.
Конструкторы анонимных классов нельзя определять и переопределять.
Анонимные классы допускают вложенность друг в друга, что может сильно запутать код и сделать эти конструкции непонятными.

example15 : анонимные классы: TypeQuest.java, RunnerAnonym.java


Слайд 12Классы внутри интерфейсов

interface ИмяИнтерфейса [extends ИмяИнтерфейса1]{
тип Поле = ЗНАЧЕНИЕ;

тип метод();
[спецификаторы]class ИмяКласса [extends …][implements …]{
/* реализация класса */
}
}

Все объявленные в интерфейсе классы автоматически трактуются как public и static

example16 класс внутри интерфейса InInterface.java

Интерфейсы тоже могут быть внутренними, пример:
Map.Entry
описывает пару ключ-значение ассоциативного словаря


Слайд 13Ключевые моменты


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика