Добавил:
vk.com/timelordru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ответы яп6

.docx
Скачиваний:
18
Добавлен:
27.04.2022
Размер:
30.85 Кб
Скачать

ответы составлялись наспех, могут быть некорректными или отсутствующими

1. Понятие «объектно-ориентированное программирование».

методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

2. Понятия «объект» и «класс».

Объект – это экземпляр некоторого класса.

3. Отношения между классами: ассоциация, агрегация, композиция, использование, наследование, инстанцирование.

Ассоциация показывает структурные отношения между объектами-экземплярами класса, т.е. соединения между классами.

Инстанцирование (англ. instantiation) — создание экземпляра класса.

Агрегация, или агрегирование (лат. aggregatio «присоединение») — процесс объединения элементов в одну систему.

Компози́ция (лат. compositio — составление, связывание, сложение, соединение) — составление целого из частей

4. Абстракция.

набор существенных характеристик объекта, исключая из рассмотрения незначимые, которые позволяют отличить его от всех других видов объектов (определить его концептуальные границы). Соответственно, абстракция – это набор всех таких характеристик

5. Инкапсуляция.

Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали

реализации от пользователя.

6. Модульность.

Модульность – свойство системы, которая была разложена на внутренне связанные, но слабо связанные между собой модули.

7. Иерархия.

иерархия классов в информатике означает классификацию объектных типов, рассматривая объекты как реализацию классов (класс похож на заготовку, а объект — это то, что строится на основе этой заготовки) и связывая различные классы отношениями наподобие «наследует», «расширяет», «является его абстракцией», «определение интерфейса».

8. Типизация.

Типизация – это способ защититься от использования объектов одного класса вместо другого, или по крайней мере управлять таким использованием.

9. Сохраняемость.

Сохраняемость – способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего начального адресного пространства.

10. Конструктор и деструктор.

1) конструктор - операция создания объекта и/или его инициализации;

2) деструктор - операция, освобождающая состояние объекта и/или разрушающая сам объект.

11. Методы класса.

функции класса

12. Понятия «абстрактный класс», «класс-интерфейс», «класс-утилита».

Абстрактный класс – это класс, который не может иметь экземпляров. В них присутствуют функции члены, которые объявлены, но не определены. Эти функции определяются в наследниках, которые уточняют данную абстракцию.

Класс-утилита – это класс, в котором присутствуют только статические члены. Используются для группировки наиболее часто используемых алгоритмов.

Интерфе́йс (англ. interface) — программная/синтаксическая структура, определяющая отношение между объектами, которые разделяют определённое поведенческое множество и не связаны никак иначе.

13. Области видимости, статические члены класса.

14. Модель предметной области.

Модель предметной области – описание объектов задачи, такое как если бы мы и не собирались писать никакую программу. На модели предметной области приводятся типы объектов, их атрибуты, связи между объектами разных типов.

15. Модель проектирования.

Модель проектирования – это описание объектов системы, приближенное к реализации в выбранной среде программирования (на конкретном языке программирования) с учетом применяемых технологий (например, базы данных).

16. Диаграммы классов. Основные элементы и обозначения.

Диаграмма классов (англ. class diagram) — структурная диаграмма языка моделирования UML, демонстрирующая общую структуру иерархии классов системы, их коопераций, атрибутов (полей), методов, интерфейсов и взаимосвязей между ними.

17. Инкапсуляция.

18. Наследование. Одиночное и множественное наследование.

Наследование – это отношение, при котором один класс разделяет структуру и поведение, определенные в другом классе

19. Проблемы, возникающие при множественном наследовании, и способы их решения.

20. Полиморфизм.

Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

21. Виртуальная функция.

Виртуальная функция в языке С++ — это особый тип функции, которая, при её вызове, выполняет «наиболее» дочерний метод, который существует между родительским и дочерними классами.

22. Таблица виртуальных функций.

vtable — механизм, используемый в языках программирования для поддержки динамического соответствия (или метода позднего связывания).

23. Сериализация и десериализация объектов.

Сериализация (в программировании) — процесс перевода структуры данных в последовательность байтов.

24. Методы сериализации объектов.

Для каждого формата предусмотрен свой класс: для сериализации в бинарный формат - класс BinaryFormatter, для формата SOAP - класс SoapFormatter, для xml - XmlSerializer, для json - DataContractJsonSerializer.

25. Принципы SOLID.

К принципам SOLID относятся:

- Single responsibility (единственной ответственности).

- Open-closed (открытости/закрытости).

- Liskov substitution (подстановки Барбары Лисков).

- Interface segregation (разделения интерфейса).

- Dependency inversion (инверсии зависимостей).

26. Принцип единственной ответственности.

обозначает, что каждый объект должен иметь одну обязанность, и эта обязанность должна быть полностью инкапсулирована в класс

27. Принцип открытости/закрытости.

состоит в том, что программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения

28. Принцип подстановки Барбары Лисков.

поведение наследуемых классов не должно противоречить поведению, заданному базовым классом

29. Принцип разделения интерфейса.

поведение наследуемых классов не должно противоречить поведению, заданному базовым классом

30. Принцип инверсии зависимостей.

модули верхних уровней не должны зависеть от модулей нижних уровней

—-

Агрегация процесс объединения элементов в одну систему. ромбик

Отношение обобщения — это наследование. треуг

зависимость пунктир