Похожие презентации:
Объектно ориентированное программирование
1.
Яндекс.Практикум Каждый может
2.
Что нас сегодня ждетПоговорим о том, что такое ООП
Есть ли место ООП в Go
Поговорим еще раз про интерфейсы
∙ Разберем вопросы
3.
А зачем?У нас много связанной логики
У нас много похожей логики
У наших штук есть состояние (и оно может
меняться)
Не хотим запоминать какие поля у наших штук
Сокрытие реализации
Хотим переиспользовать код
Надо тестировать
Хотим добавлять штуки легко
4.
НЕ ООП5.
Функциональная
парадигма
6.
ООП7.
ООПОбъектно
ориентированное
программирование
Классы и
объекты
Наследование
Инкапсуляция
Полиморфизм
8.
ООПКлассы и
объекты
Классы: Классы являются основными шаблонами для
создания объектов (экземпляров). Класс определяет
состояние и поведение, которыми будут обладать его
объекты, через поля (или атрибуты) и методы.
Объекты: Объект - это экземпляр класса. Каждый
объект имеет свое состояние, которое определяется
значениями его полей, и поведение, определяемое
его методами. Объекты являются основными
строительными блоками в ООП.
9.
ООПСвойства и методы (properties and methods)
10.
ООПНаследование
Наследование позволяет новому классу
принимать (наследовать) свойства и методы
другого класса. Это способствует повторному
использованию кода.
В классическом ООП, класс-потомок может
переопределять или расширять функционал
класса-родителя, что упрощает управление
сложностью и развитие программ.
11.
ООПИнкапсуляция
Инкапсуляция - это механизм скрытия внутренних деталей
реализации объекта и предоставления только необходимого
интерфейса для взаимодействия с объектом.
Это достигается путем ограничения доступа к данным и методам
объекта, что позволяет предотвратить несанкционированный доступ
к внутреннему состоянию объекта и гарантирует контроль над
изменениями его состояния.
12.
ООППолиморфизм
Полиморфизм - это способность одного интерфейса
предоставлять доступ к общему типу действий или методов для
различных типов данных.
В ООП это обычно достигается через перегрузку методов
(одинаковые имена методов, но разные параметры) и
переопределение методов (одинаковые имена и параметры, но
разные реализации в классах-потомках).
13.
GoКлассов нет - есть структуры
14.
GoНаследования нет - есть “встраивание” (embeddin
15.
GoИнкапсуляция… ну она есть
Импортируемость на уровне пакета
“Приватность” задается
большой/маленькой первой буквой
имени
16.
ИнтерфейсыОписывают поведение (методами)
17.
ИнтерфейсыОписывают поведение (методами)
18.
Бонус19.
Указателиэто переменные, которые хранят адреса в памяти других
переменных.
Концепция:
Переменная (данные) хранится в ячейке памяти
У ячейки есть физический адрес, по которому к ней можно обращаться
Данных может быть много
Когда передаем переменную в функцию - мы копируем данные. То есть вся
инфа из ячейки(ек) записывается еще раз.
Когда передаем указатель на данные - мы копируем только адрес ячейки.
Когда надо обратиться к ее значению - это всегда можно сделать, так как у
нас есть этот самый адрес.
20.
Указателиэто переменные, которые хранят адреса памяти других
переменных.
21.
Указателиэто переменные, которые хранят адреса памяти других
переменных.
22.
Вопросы23.
Спасибо за внимание24.
Defer и ReturnОтдаем переменную
result
Отдаем какой-нибудь Int
Программирование