Главное отличие между Объектно-ориентированное программированием и Процедурным программированием[2 - Определённое возрождение процедурного подхода наблюдается в ряде сценарных языков (Tcl, Perl, Lua, Фортран, Кобол, Алгол, Бейсик, Си, ПЛ/1, Паскаль, Форт, языки командных оболочек), однако большинство из них являются мультипарадигменными.], то что процедурное программирование заключается в написании кода с или без подпрограмм. ООП использует язык программирования более хорошему программному коду и для получений высокого уровня написания огромных проектов и производительность. Похая взаимосвязь может возникать после несоблюдения трех главных принципов: полиморфизма, инкапсуляции и наследования.
Рисунок 2.2.1 — Основные принципы ООП
«Сущность» и «объект» в человеческой ежедневной жизни можно считать: самолёты, ПК, транспортные стредства, банковские счета. Все объекты обладают некоторыми параметрами и функциональностью. Объект, который представляется как завершенная функциональная единица, составляет все необходимые данные и полную функциональность, которая нужна для решений задач, и по которой он имеет назначение.
К примеру, рассмотрим такой объект как «велосипед». У него есть параметры (цвет, вес, стоимость) и поведение (мотоцикл может ехать, сигналить, потреблять топливо).
С вищеуказаного примера, можно считать, что Инкапсуляция – это сокрытие поведения объекта внутри него. Этому объекту «водитель» нет такой необходимости владеть инофрмацией о происходящем в объекте «мотоцикл», чтобы двуколёсный ехал. Это главный и ключевой принцип ООП.
Наследование. К примеру, возьмём объекты: «человек» и «водитель». У них есть что-то общее? Наследование даёт возможность выделить всё общее в один объект (в данном конкретном случае более общим – человек), а для водителя – определить как человека с дополнительными параметрами и поведением. Так как у водителя обязательно есть водительские права, а у человека их присудствие является не обязательным.
Полиморфизм считатется переопределением поведения.
К примеру, снова рассмотрим объекты «человек» и «водитель», но в этот раз добавим ещё один объект «пешеход». Объект «Человек» наделён способностью передвигаться, но как именно, это уже зависит от того, является он водителем, или пешеходом. Можно прдположить, что у пешехода и водителя похожее поведение, но реализация по-разному: первый перемещается с помощью ног, второй – на машине.
Реализация методов ООП происходит с помощью интерфейсов, определяет список методов класса, но ничего не говорит об их реализации. В объекте допустимо реализовать несколько интерфейсов, а один и тот же интерфейс можно реализовать в разных классах.
Рисунок 2.2.2 — Общее представление об ООП
Объект представляет собой экземпляр определёного класса.
А класс – шаблон, в котором описаны: все параметры этого объекта, его методы. Учитвая то, что класс объекта «Воздушный шарик» определяется свойствами цвета, то экземпляр этого класса, можно создавать сколько угодно, и другие будут раскрашены в эти цвета.
Классы выстраиваются в витиеватые структуры. Поэтому, чем сама структура запутаней, тем утилита будет гибкой, и легче поддается с изменениями и внедрением новых видов функционала, но это не обязательно. Принципы ООП (наследование, полиморфизм, инкапсуляция) позволяют возможность для создания структур объектов еще еффектней, избавляя кодинг от дублирований и создают его интуитивно более допустимым, но это не всегда.
Для понимание принципа работы объектов нужно разобраться в сути мастерства ООП, и в умении создавать многоуровневую структуру по классам, оставляя программный код надежным, читаемым и гибким.
2.3 Алгоритмы и структуры данных
Алгоритм – это так называют последовательность действий, которые совершаются. Структуры данных имеют реализацию с помощью алгоритма, а вот алгоритмы – структуры данных. Алгоритмы и структуры данных – это инструменты, которыми уверенно пользуются начинающее разработчики, создавая утилиты. Если знать этот инструментарий, можно создавать большое количество того, что уже в базах кодинга, а также и с которыми не редко встречаемся. Кроме этого, похожие данные решают сложные задания. Это нужно иметь ввиду, и при ограничениях алгоритмов (теоретических), о при том, какими оптимизациями их есть возможность подвергнуть. По итогу, понять решение, в котором, с учётами всех нужных компромиссов, оказывается настолько хорошими, насколько это предоставляет возможность.
Алгоритмы и структуры данных (в C#):
– Связный список
Связный список (с англ. Linked List) представляет набор связанных узлов, каждый из которых хранит собственно данные и ссылку на следующий узел.
– Двусвязные списки
Двусвязный список – это структура данных, которая состоит из узлов, которые хранят полезные данные, указатели на предыдущий узел и следующий узел, каждый из которых содержит информационную часть (данные) и два указателя на соседние элементы (на следующий и предыдущий элементы). В пространстве имен. NET C# System. Collections. В случае, когда в списке нет элементов, оба они равны нулю. Если в списке один элемент, то оба указателя ссылаются на один и тот же элемент (соответственное, они равны).