Особенности объектной модели Java. (Лекция 5) презентация

Содержание

Слайд 2

Содержание

Содержание

Слайд 3

Статические элементы Статические элементы Относятся к классу в целом, а

Статические элементы

Статические элементы
Относятся к классу в целом, а не к экземплярам

класса (объектам)
Существуют в единственном экземпляре независимо от числа созданных объектов
Обращение – через имя класса, а не через ссылку на объект
Слайд 4

Инициализация и вызов class StudentGroup { public static int totalCount;

Инициализация и вызов

class StudentGroup {
public static int totalCount;
public static int getCount()

{
return totalCount;
}
public static void sessionFailed() {
totalCount--;
}
}
Слайд 5

Инициализация и вызов StudentGroup.totalCount = 24; StudentGroup group4350 = new

Инициализация и вызов

StudentGroup.totalCount = 24;
StudentGroup group4350 = new StudentGroup();
int i =

group4350.getCount();
System.out.println(i); // ????
group4350 = null;
group4350.sessionFailed(); // ????
System.out.println(group4350.totalCount);
// ????
System.out.println(StudentGroup.totalCount);
// ????
Слайд 6

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

Статический и динамический контекст

Статический контекст
Статические методы и инициализаторы
Инициализаторы статических полей
Динамический контекст
Все

прочие части кода
В динамическом контексте работа всегда идет с экземпляром класса; в статическом – с самим классом
Слайд 7

Особенности Обращение к полям и методам По простому имени –

Особенности

Обращение к полям и методам
По простому имени – в порядке следования;

по составному имени – в любом порядке
Обращение из статического контекста в динамический – запрещено
class StudentGroup {
static int a = b; // ????
static int c = StudentGroup.b;
static int b = 7;
public void process() {}
public static void main (String[] s) {
process(); // ????
}
}
Слайд 8

Ключевые слова this и super Ключевое слово this возвращает ссылку

Ключевые слова this и super

Ключевое слово this возвращает ссылку на объект,

в методе которого оно использовано
Использования this:
Передача данного объекта по ссылке
Разрешение «затемняющих» объявлений
Обращение к полям, объявляемых ниже
Вызов других конструкторов класса
Слайд 9

Ключевые слова this и super Ключевое слово super позволяет обратиться

Ключевые слова this и super

Ключевое слово super позволяет обратиться к методам

родительского объекта:
Вызов конструктора родительского класса
Вызов переопределенного метода родительского класса
Слайд 10

Абстрактные классы и методы Абстрактный метод не имеет реализации обязательно

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

Абстрактный метод
не имеет реализации
обязательно должен быть реализован

в наследниках
При наличии абстрактных методов класс обязательно объявляется как абстрактный
Абстрактный класс
может иметь абстрактные методы
не может быть инстанциирован
Слайд 11

Абстрактный класс Заголовок класса [модификатор доступа] abstract final class {[тело

Абстрактный класс

Заголовок класса
[модификатор доступа]
abstract final class <имя класса>
{[тело

класса]}
Объявление метода
abstract
private | native | static
<тип> <имя>([параметры]);
Слайд 12

Интерфейс Класс, содержащий только абстрактные методы = интерфейс Не может

Интерфейс

Класс, содержащий только абстрактные методы = интерфейс
Не может быть инстанциирован

[модификатор доступа]


interface <имя интерфейса>
{[тело интерфейса]}

Тело интерфейса состоит только из абстрактных методов

Слайд 13

Интерфейс Способ реализации множественного наследования Мощный способ организации полиморфных программ

Интерфейс

Способ реализации множественного наследования
Мощный способ организации полиморфных программ
Тип переменной:
«Абстрактный класс»
Неабстрактный наследник


«Интерфейс» – классы, реализующие его:
напрямую (implements)
наследуемые от реализующих классов
реализующие наследников интерфейса
Слайд 14

Структура объявления класса Заголовок класса [модификатор доступа] [final] class [extends ] [implements [, …]] {[тело класса]}

Структура объявления класса

Заголовок класса
[модификатор доступа]
[final]
class <имя класса>
[extends <имя

класса>]
[implements <имя интерфейса>[, …]] {[тело класса]}
Слайд 15

Полиморфизм Ссылочный тип обладает элементами: Непосредственно объявленными в его теле

Полиморфизм

Ссылочный тип обладает элементами:
Непосредственно объявленными в его теле
Объявленными в родительском классе

или интерфейсах, кроме:
private-элементов
«скрытых» одноименными элементами
переопределенных методов
Модификаторы доступа можно только «расширять» (сужать запрещено)
Слайд 16

Массив Массив – набор однотипных значений Отдельный элемент массива не

Массив

Массив – набор однотипных значений
Отдельный элемент массива не имеет имени
Объявление массива
int

a[];
int[] a;
int[] a[];
int a[][];
Слайд 17

Размер массива Задается при создании int a[] = new int[5];

Размер массива

Задается при создании
int a[] = new int[5];
Доступна в специальном свойстве


int length = a.length;
Индексация начинается с «0»
Ошибка индексации – ошибка времени исполнения программы
Имя файла: Особенности-объектной-модели-Java.-(Лекция-5).pptx
Количество просмотров: 30
Количество скачиваний: 0