- •Начальные сведения об объектно-ориентированном программировании (программа как динамический набор взаимодействующих объектов).
- •Классы и объекты (экземпляры класса), главные отличия класса от объекта.
- •Открытый интерфейс класса и его составляющие (свойства методы и события).
- •Инкапсуляция и ее назначение.
- •Понятие о полиморфизме, предназначение полиморфизма.
- •Наследование и его использование для реализации полиморфизма.
- •Понятие распределенного приложения. Клиенты и серверы.
- •Пятислойная архитектура распределенных приложений.
- •Архитектура, ориентированная на сервисы. Понятие об облачных вычислениях.
- •Локальные и глобальные компьютерные сети. Internet.
- •Сетевые протоколы и их роль в передаче данных.
- •Стандарт xml, языки разметки html и xhtml.
- •Дата-центры, провайдеры данных и прокси-серверы.
- •Базы данных и хранилища данных.
- •Понятие о сжатии информации и архивах. Примеры программ архивации Windows.
- •Защита информации путем разграничения доступа.
- •Защита информации путем шифрования.
- •Цифровая подпись и ее назначение.
- •Понятие о вредоносном программном обеспечении (вирусы и программы-шпионы).
- •Средства борьбы с вредоносным по (на примерах Kaspersky Internet Security и Microsoft Security Essentials).
- •Компьютер как средство связи. Коммуникаторы и смартфоны.
- •Электронная почта (на примерах Microsoft Outlook и Windows Live).
- •Понятие об электронной коммерции: интернет-магазины, платежные системы и т.П.
- •Понятие о по для решения бизнес-задач (на примерах Microsoft Office и 1с Предприятие).
Понятие о полиморфизме, предназначение полиморфизма.
Полиморфи́зм (в языках программирования) — возможность объектов с одинаковой спецификацией иметь различную реализацию.
Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования.
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).
Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:
внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именами методов, типами аргументов и их количеством);
внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).
Наследование и его использование для реализации полиморфизма.
Насле́дование — механизм объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.
Другими словами, класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса.
Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, а реализация, в результате переопределения метода, этих методов может быть другой, соответствующей специфике класса-потомка. Другие функции могут работать с объектом как с экземпляром класса-родителя, но если при этом объект на самом деле является экземпляром класса-потомка, то во время исполнения будет вызван метод, переопределенный в классе-потомке. Это называется поздним связыванием.
Класс-потомок сам может быть родителем. Это позволяет строить сложные схемы наследования — древовидные или сетевидные.
Абстрактные (или чисто виртуальные) методы не имеют реализации вообще (на самом деле некоторые языки, например C++, допускают реализацию абстрактных методов в родительском классе). Они специально предназначены для наследования. Их реализация должна быть определена в классах-потомках.
Класс может наследовать функциональность от нескольких классов. Это называется множественным наследованием. Множественное наследование создаёт известную проблему (в C++), когда класс наследуется от нескольких классов-посредников, которые в свою очередь наследуются от одного класса (так называемая «Проблема ромба»): если метод общего предка был переопределён в посредниках, неизвестно, какую реализацию метода должен наследовать общий потомок. Решается эта проблема путём отказа от множественного наследования для классов и разрешением множественного наследования для полностью абстрактных классов (то есть интерфейсов) (C#, Delphi, Java), либо через виртуальное наследование (C++).