10.06M
Category: programmingprogramming

Основы ООП. Тема 1

1.

Тема 1
Основы ООП
Дистанционная лекция 1 (Praxis 1)
Объектно-ориентированное программирование

2.

История развития компьютеров

3.

История развития компьютеров

4.

ENIAC - один из первых в мире электронных
цифровых компьютеров (на перфокартах)

5.

Компьютеры получили сильный импульс
развития в начале XX века

6.

История появления ООП
Ассемблер
С#

7.

Структурное программирование
Первым языком высокого уровня стал FORTRAN (FORmula TRANslator).

8.

Процедурное программирование
Процеду́рное программи́ рование
— программирование на
императивном языке, при котором
последовательно выполняемые
операторы можно собрать в
подпрограммы, то есть более
крупные целостные единицы кода,
с помощью механизмов самого
языка.
Фортран, Кобол, Алгол, Бейсик, Си,
ПЛ/1, Паскаль, Фортран —
процедурные языки

9.

Объектно-ориентированное
программирование
• Объе́ктно-ориенти́ рованное
программи́ рование (сокр.
ООП) — методология
программирования,
основанная на представлении
программы в виде
совокупности
взаимодействующих объектов,
каждый из которых является
экземпляром определённого
класса, а классы образуют
иерархию наследования.

10.

Инкапсуляция

11.

Полиморфизм

12.

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

13.

Классы и объекты
Класс
Объект
Класс можно считать шаблоном,
по которому определяется
форма объекта. В этом шаблоне
указываются данные и код,
который будет работать с этими
данными – поля и методы. В C#
используется спецификация
класса для построения
объектов, которые являются
экземплярами класса.
• представление класса
появится в оперативной
памяти лишь после создания
объекта этого класса

14.

Член класса является членом экземпляра,
если только он не объявлен явно как static.
Рассмотрим члены данных:
• Поля - любые переменные, связанные с классом.
• Константы - ассоциируются с классом, как и поля. Константа
объявляется с помощью ключевого слова const. Если константа
объявлена публичной (public), то она становится доступной извне
класса.
• События - члены класса, позволяющие объекты уведомлять
вызывающий код о том, что произошло какое-то событие,
например, изменилось свойство класса или произошло
взаимодействие с пользователем.

15.

Функции-члены - это члены, предназначенные
для манипулирования данными класса.
В C# поддерживаются следующие функции-члены:
• Методы (method) - функции, связанные с определенным классом. Как и члены данных, они являются
членами экземпляра. Они могут быть объявлены статическими с помощью модификатора static.
• Свойства (property) - представляют собой наборы функций, которые могут быть доступны так же, как и
общедоступные поля класса. В C# используется специальный синтаксис для реализации чтения (Get) и
записи (Set) свойств для классов, поэтому писать собственные методы с именами, начинающимися на
Set и Get, не понадобится.
• Конструкторы (constructor) - функции, вызываемые автоматически при инициализации объекта.
Имена конструкторов совпадают с именами классов, которым они принадлежат. Конструкторы не
имеют типа возврата и обычно используются для инициализации полей.
• Финализаторы (finalizer) - вызываются, когда среда CLR решает, что объект больше не нужен. В других
языках программирования финализаторы называются деструкторами. Имеют то же имя, что и класс, но
с предшествующим символом тильды.
• Операторы (operator) - используются для перезагрузки простейших действий вроде + и -.
• Индексаторы (indexer) - используется для индексирования объектов.

16.

Ключевое
слово
class
class имя_класса {
// Объявление переменных
экземпляра.
access type var1;
access type var2;
//...
access type varN;
// Объявление методов.
access return_type method1 ([args]) {
// тело метода
}
access return_type method2 ([args]) {
// тело метода
}
//. . .
access return_type methodN([args]) {
// тело метода
}
}

17.

Листинг 1. Пример класса,
выводящего информацию
о системе

18.

Что такое анализ и проектирование ?

19.

Краткий пример
• Определение прецедентов

20.

Краткий пример
• Определение прецедентов
• Определение модели
предметной области

21.

Краткий пример
• Определение прецедентов
• Определение модели
предметной области

22.

Краткий пример
• Определение прецедентов
• Определение модели
предметной области
• Распределение обязанностей
между объектами и
диаграммы взаимодействий

23.

Краткий пример
• Определение прецедентов
• Определение модели
предметной области
• Распределение обязанностей
между объектами и
диаграммы взаимодействий

24.

Краткий пример
• Определение прецедентов
• Определение модели
предметной области
• Распределение обязанностей
между объектами и
диаграммы взаимодействий
• Разработка диаграмм классов
проектирования

25.

Краткий пример
• Определение прецедентов
• Определение модели
предметной области
• Распределение обязанностей
между объектами и
диаграммы взаимодействий
• Разработка диаграмм классов
проектирования

26.

Домашнее задание
URL-адрес ссылки на тест
https://forms.gle/QGjhCZvEXFP7ca97A
Deadline (крайний срок выполнения теста) :
09.02.2023 20:00

27.

Спасибо за внимание!
English     Русский Rules