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