|
|
@@ -1,16 +1,13 @@
|
|
|
-<table style="width: 100%;"><tr><td style="width: 40%;">
|
|
|
-<a href="../articles/t6_oop1.md">История развития ООП. Базовые понятия: объект, его свойства и методы, класс, интерфейс. Основные принципы ООП: инкапсуляция, наследование, полиморфизм.
|
|
|
-</a></td><td style="width: 20%;">
|
|
|
-<a href="../readme.md">Содержание
|
|
|
-</a></td><td style="width: 40%;">
|
|
|
-<a href="../articles/t6_linq.md">LINQ.
|
|
|
-</a></td><tr></table>
|
|
|
+Предыдущая лекция | | Следующая лекция
|
|
|
+:----------------:|:----------:|:----------------:
|
|
|
+[История развития ООП. Базовые понятия.](./t6_oop1.md) | [Содержание](../readme.md#тема-6-основные-принципы-объектно-ориентированного-программирования) | [LINQ.](./t6_linq.md)
|
|
|
|
|
|
-## Базовые понятия: объект, его свойства и методы, класс, интерфейс.
|
|
|
+
|
|
|
+# Базовые понятия: объект, его свойства и методы, класс, интерфейс.
|
|
|
|
|
|
В силу своей природы, объектно-ориентированное программирование лучше всего объяснять на примерах. [Нашими пациентами будут трансформеры.](https://habr.com/ru/post/463125/)
|
|
|
|
|
|
-### Класс и объект
|
|
|
+## Класс и объект
|
|
|
|
|
|
Самое простое объяснение: **класс** — это чертеж трансформера, а экземпляры этого класса — конкретные трансформеры, например, *Оптимус Прайм* или *Олег*. И хотя они и собраны по одному чертежу, умеют одинаково ходить, трансформироваться и стрелять, они оба обладают собственным уникальным состоянием. Состояние — это ряд меняющихся свойств. Поэтому у двух разных объектов одного **класса** мы можем наблюдать разное имя, возраст, местоположение, уровень заряда, количество боеприпасов и т. д. Само наличие этих свойств и их типы описываются в классе.
|
|
|
|
|
|
@@ -65,7 +62,7 @@ Console.WriteLine(optimus.x);
|
|
|
|
|
|
4. Методы *Transformer* (конструктор) и *run* работают с внутренним состоянием, а во всем остальном не отличаются от обычных функций. Даже синтаксис объявления совпадает.
|
|
|
|
|
|
-### Интерфейс
|
|
|
+## Интерфейс
|
|
|
|
|
|
Когда мы подходим к автомату с кофе или садимся за руль, мы начинаем взаимодействие с ними. Обычно, взаимодействие происходит с помощью некоторого набора элементов: щель для приёмки монеток, кнопка выбора напитка и отсек выдачи стакана в кофейном автомате; руль, педали, рычаг коробки переключения передач в автомобиле. Всегда существует некоторый ограниченный набор элементов управления, с которыми мы можем взаимодействовать.
|
|
|
|
|
|
@@ -350,10 +347,14 @@ Cлой абстракции в виде интерфейсов между сл
|
|
|
|
|
|
В таком коде мы можем создавать новые комплектующие к трансформерам, не затрагивая чертежи самих трансформеров. В то же время и наоборот, мы можем создавать новых трансформеров, комбинируя уже существующие комплектующие, либо добавлять новые комплектующие, не меняя существующих.
|
|
|
|
|
|
-<table style="width: 100%;"><tr><td style="width: 40%;">
|
|
|
-<a href="../articles/t6_oop1.md">История развития ООП. Базовые понятия: объект, его свойства и методы, класс, интерфейс. Основные принципы ООП: инкапсуляция, наследование, полиморфизм.
|
|
|
-</a></td><td style="width: 20%;">
|
|
|
-<a href="../readme.md">Содержание
|
|
|
-</a></td><td style="width: 40%;">
|
|
|
-<a href="../articles/t6_linq.md">LINQ.
|
|
|
-</a></td><tr></table>
|
|
|
+---
|
|
|
+
|
|
|
+## Контрольные вопросы
|
|
|
+
|
|
|
+1. Интерфейс
|
|
|
+1. Основные принципы ООП
|
|
|
+
|
|
|
+Предыдущая лекция | | Следующая лекция
|
|
|
+:----------------:|:----------:|:----------------:
|
|
|
+[История развития ООП. Базовые понятия.](./t6_oop1.md) | [Содержание](../readme.md#тема-6-основные-принципы-объектно-ориентированного-программирования) | [LINQ.](./t6_linq.md)
|
|
|
+
|