Разделы презентаций


Абстрактные классы, интерфейсы. Вложенные классы, анонимные, локальные

Содержание

Абстрактные классыКласс объявленный со спецификатором abstractМожет содержать абстрактные методы (методы без реализации).abstract class A { abstract void m();}Kolesnikov D.O. SED KNURE

Слайды и текст этой презентации

Слайд 1АБСТРАКТНЫЕ КЛАССЫ, ИНТЕРФЕЙСЫ. ВЛОЖЕННЫЕ КЛАССЫ, АНОНИМНЫЕ, ЛОКАЛЬНЫЕ.

АБСТРАКТНЫЕ КЛАССЫ, ИНТЕРФЕЙСЫ. ВЛОЖЕННЫЕ КЛАССЫ, АНОНИМНЫЕ, ЛОКАЛЬНЫЕ.

Слайд 2Абстрактные классы
Класс объявленный со спецификатором abstract

Может содержать абстрактные методы (методы

без реализации).

abstract class A {
abstract void m();
}

Kolesnikov D.O. SED KNURE

Абстрактные классыКласс объявленный со спецификатором abstractМожет содержать абстрактные методы (методы без реализации).abstract class A {	abstract void m();}Kolesnikov

Слайд 3Свойства абстрактного класса
Нельзя создать экземпляр, но можно объявить переменную данного

типа

Может иметь конструкторы

Может содержать обычные методы
Kolesnikov D.O. SED KNURE

Свойства абстрактного классаНельзя создать экземпляр, но можно объявить переменную данного типаМожет иметь конструкторыМожет содержать обычные методыKolesnikov D.O.

Слайд 4Предназначение абстрактных классов

Интерфейс к семейству классов.

База для реализации полиморфизма.

Неабстрактные потомки

обязаны реализовать абстрактные методы.
Kolesnikov D.O. SED KNURE

Предназначение абстрактных классовИнтерфейс к семейству классов.База для реализации полиморфизма.Неабстрактные потомки обязаны реализовать абстрактные методы.Kolesnikov D.O. SED KNURE

Слайд 5Абстрактный метод
Метод, который не содержит реализации.
Обязан быть объявлен со спецификатором
abstract

public

abstract void m();
Kolesnikov D.O. SED KNURE

Абстрактный методМетод, который не содержит реализации.Обязан быть объявлен со спецификатором	abstractpublic abstract void m();Kolesnikov D.O. SED KNURE

Слайд 6Вложенные классы
Элементы класса
статические
нестатические
Локальные
анонимные
с указанием имени
Kolesnikov D.O. SED KNURE

Вложенные классыЭлементы классастатическиенестатическиеЛокальныеанонимныес указанием имениKolesnikov D.O. SED KNURE

Слайд 7Примеры классов
class A { // класс верхнего уровня
void m(SomeClass p)

{…}
class B {} // класс элемент класса
void m() {
class C

{} // С – локальный класс
m(new SomeClass() { // ан. класс
});
}
}

Kolesnikov D.O. SED KNURE

Примеры классовclass A { // класс верхнего уровня	void m(SomeClass p) {…}	class B {} // класс элемент класса	void

Слайд 8Классы - элементы классов
Могут иметь модификаторы/спецификаторы:
abstract
static
final
private/protected/default/public
Kolesnikov D.O. SED KNURE

Классы - элементы классовМогут иметь модификаторы/спецификаторы:abstractstaticfinalprivate/protected/default/publicKolesnikov D.O. SED KNURE

Слайд 9Локальные классы
Классы, объявленные внутри методов, конструкторов, блоках инициализации.

Могут быть: abstract,

final

Уровень доступа - default, по умолчанию, ограничен телом блока, в

котором объявлен класс.

Kolesnikov D.O. SED KNURE

Локальные классыКлассы, объявленные внутри методов, конструкторов, блоках инициализации.Могут быть: abstract, finalУровень доступа - default, по умолчанию, ограничен

Слайд 10Анонимные классы
Класс, который не имеет имени.

Всегда расширяет класс или реализует

интерфейс.

Используется при создании объектов.
Kolesnikov D.O. SED KNURE

Анонимные классыКласс, который не имеет имени.Всегда расширяет класс или реализует интерфейс.Используется при создании объектов.Kolesnikov D.O. SED KNURE

Слайд 11Пример анонимного класса
class T {}

T t = new T() {
void

m() {...}
}

t - переменная типа T, кот. ссылается на экземпляр

анонимного класса, наследованного от T.

Kolesnikov D.O. SED KNURE

Пример анонимного классаclass T {}T t = new T() {	void m() {...}}t - переменная типа T, кот.

Слайд 12Свойства внутренних классов
Не могут объявлять статических полей (кроме констант), методов

и классов (но могут наследовать их.

Имеют доступ к элементам внешнего

класса.

Имеют доступ к локальным переменным и параметрам метода (они должны быть объявлены как final).

Kolesnikov D.O. SED KNURE

Свойства внутренних классовНе могут объявлять статических полей (кроме констант), методов и классов (но могут наследовать их.Имеют доступ

Слайд 13Создание объектов внутреннего класса
(нестатические элементы классов)

Расширенный синтаксис оператора new

class A

{
class B {}
}
A a = new A();
A.B b = a.new

B();

Kolesnikov D.O. SED KNURE

Создание объектов внутреннего класса(нестатические элементы классов)Расширенный синтаксис оператора newclass A {	class B {}}A a = new A();A.B

Слайд 14Создание объектов вложенных статических классов

class A {
static class B {}
}

A.B

b = new A.B();

Kolesnikov D.O. SED KNURE

Создание объектов вложенных статических классовclass A {	static class B {}}A.B b = new A.B();Kolesnikov D.O. SED KNURE

Слайд 15Доступ к объекту внешнего класса (this) из внутреннего

class A {
private

int x;
class B {
int x = A.this.x;
}
}

Kolesnikov D.O. SED KNURE

Доступ к объекту внешнего класса (this) из внутреннегоclass A {		private int x;		class B {		int x = A.this.x;	}	}Kolesnikov

Слайд 16Имя файла с байт-кодом вложенного класса

Для каждого класса компилятор (javac)

создает отдельный файл класса.


Outer$Inner.class
Kolesnikov D.O. SED KNURE

Имя файла с байт-кодом вложенного классаДля каждого класса компилятор (javac) создает отдельный файл класса.Outer$Inner.classKolesnikov D.O. SED KNURE

Слайд 17Интерфейсы
Определяют границы взаимодействия между объектами.

Определяют абстракцию, реализацию которой предоставляет имплементирующая

интерфейс сторона.
Kolesnikov D.O. SED KNURE

ИнтерфейсыОпределяют границы взаимодействия между объектами.Определяют абстракцию, реализацию которой предоставляет имплементирующая интерфейс сторона.Kolesnikov D.O. SED KNURE

Слайд 18Использование интерфейсов
Класс может реализовывать интерфейс

Можно объявить интерфейсную переменную

Интерфейс может наследовать

несколько других интерфейсов
Kolesnikov D.O. SED KNURE

Использование интерфейсовКласс может реализовывать интерфейсМожно объявить интерфейсную переменнуюИнтерфейс может наследовать несколько других интерфейсовKolesnikov D.O. SED KNURE

Слайд 19Элементы интерфейса
поля (public static final)
методы (public abstract)
интерфейсы (public static)
классы (public

static)

Указанные модификаторы и спецификаторы можно не ставить.
Kolesnikov D.O. SED KNURE

Элементы интерфейсаполя (public static final)методы (public abstract)интерфейсы (public static)классы (public static)Указанные модификаторы и спецификаторы можно не ставить.Kolesnikov

Слайд 20Поля интерфейса
константы (final)
статические (static)
публичные (public)
должны быть проинициализированы при объявлении
Kolesnikov D.O.

SED KNURE

Поля интерфейсаконстанты (final)статические (static)публичные (public)должны быть проинициализированы при объявленииKolesnikov D.O. SED KNURE

Слайд 21Методы интерфейса
абстрактные (abstract)
публичные (public)
Kolesnikov D.O. SED KNURE

Методы интерфейсаабстрактные (abstract)публичные (public)Kolesnikov D.O. SED KNURE

Слайд 22Вложенные классы и интерфейсы- элементы интерфейсов

Статические
Kolesnikov D.O. SED KNURE

Вложенные классы и интерфейсы- элементы интерфейсовСтатическиеKolesnikov D.O. SED KNURE

Слайд 23Множественное наследование интерфейсов

interface Interf extends Interf1, Interf2 {
...
}

Kolesnikov D.O. SED

KNURE

Множественное наследование интерфейсовinterface Interf extends Interf1, Interf2 {	...}Kolesnikov D.O. SED KNURE

Слайд 24Реализация интерфейса
class A implements Interf1, Interf2 {
...
}
Kolesnikov D.O. SED

KNURE

Реализация интерфейсаclass A implements Interf1, Interf2 {	...} Kolesnikov D.O. SED KNURE

Слайд 25Реализация интерфейсов и расширение класса

class A extends B implements Interf1,

Interf2 {
...
}

Kolesnikov D.O. SED KNURE

Реализация интерфейсов и расширение классаclass A extends B implements Interf1, Interf2 {	...}Kolesnikov D.O. SED KNURE

Слайд 26Оператор instanceof для интерфейсов

interface I {}
class A implements I {}
...
boolean

f = new A() instanceof I; // f = true



Kolesnikov D.O. SED KNURE

Оператор instanceof для интерфейсовinterface I {}class A implements I {}...boolean f = new A() instanceof I; //

Слайд 27Частичная реализация интерфейса
interface I {
void m();
void m2();
}
// ошибка компиляции, A

is not abstract!
class A implements I {
public void m() {}
}

Kolesnikov

D.O. SED KNURE
Частичная реализация интерфейсаinterface I {	void m();	void m2();}// ошибка компиляции, A is not abstract!class A implements I {	public

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

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

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

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

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


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

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