Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал по ооп.docx
Скачиваний:
3
Добавлен:
04.08.2019
Размер:
102.94 Кб
Скачать
  1. Современные подходы к программированию

Основные подходы:

  • Модульный (имеет чётко опр-ю структуру)

  • Функциональный (функции вып-т нек-е действия)

  • Логический

  • Объектно-ориентированный подход

  • Смешанный

  • Компонентно-ориентированный

  • Объектный подход

Декларативный язык

(программирование представляет собой описание действий которые необходимо осуществить ):

  • простота верификации и тестирования (+)

  • строгость мат формализации (+)

  • высокая степень абстракции (+)

  • сложность реализации (-)

  • необходимость мат знаний (-)

Процедурный язык

(программа представляет собой набор операторов, которые сгруппированы в отдельные блоки операторов - процедуры):

  • более высокий уровень абстракции (+)

  • меньшая машинная зависимость (+)

  • более широкая совместимость (+)

  • содержательная значимость текстов (+)

  • унификация программного кода (+)

  • увелич. производительности труда программистов(+)

  • большие трудозатраты на обучение (-)

  • меньшая эффективность программного кода (-)

Функциональный язык

(программа – функция, аргументы которой также возможно функции):

  • автоматическое управление памятью (сборка мусора) (+)

  • простота повторного использования кода (+)

  • использование функций с параметрическими аргументами (+)

  • абстрагирование от машинного представления данных (+)

  • использование рекурсий (вызов самих себя) (+)

  • удобство символьной обработки (+)

  • нелинейная структура программы (-)

  • низкая эффективность (-)

Объектно-ориентированный язык

(программа представляет описание объектов, совокупность отношений и взаимодействие между ними):

  • описание любой предметной области (+)

  • моделирование сложных предметных областей (+)

  • событийная ориентированность (+)

  • высокий уровень абстракции (+)

  • повторное использование объектов (+)

  • параметризация методов обработки объектов (+)

  • сложность тестирования и верификации (-)

  1. Основные понятия и принципы ООП

Объектно-ориентированный язык

(программа представляет описание объектов, совокупность отношений и взаимодействие между ними):

  • описание любой предметной области (+)

  • моделирование сложных предметных областей (+)

  • событийная ориентированность (+)

  • высокий уровень абстракции (+)

  • повторное использование объектов (+)

  • параметризация методов обработки объектов (+)

  • сложность тестирования и верификации (-)

Принципы ООП:

  1. Абстракция:

это выражение языка программирования, отличное от идентификаторов.

Переменная является значением абстракции.

Поведение абстракции это приложение функции к аргументу.

Моделируется при помощи лямбда- счисления

  1. Наследование:

означает свойства произвольного объекта сохранять поведение базового объекта.

Моделируется наследование 2 подходами:

  • Фреймовая нотация Руссополоса

  • диаграмма Hasse

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

доступность объекта исключительно при помощи свойств и методов.

Свойства: совместное хранение данных и методов; скрытие внутренней информации об пользователе; изоляция пользователя от особенности реализации

  1. Полиморфизм:

оперирование объектами не обладая точными значением их типов

  1. Аспекты платформы .NET Framework

Платформа.net означает:

  • Совокупность технологий, которые позволяют работать с инф. в любое время на любом устройстве

  • Программы становятся услугами

  • Платформа поддерживает различные языки

  • Стандартная инфраструктура по разработке, использованию, хостингу и интеграции XML Web услуг

  • Маркетинговая стратегия

Составляющие концепции:

  • Новая идеология проектирования

  • Модель поддержки жизненного цикла

  • Современная, интегрированная платформа

  • Современный инструментарий

  1. Идеология:

  • Легкость развертывания приложений в среде Интернет

  • Эконом. разраб. путем испол. готовых компонентов

  • Интеграция как с программными прод-ми, так и с аппаратными средствами

  • Использование сервисов, кот предлагаются пользователям или приложениям

  • Безопасность и удобство использования

  1. Модель:

  • компонентный подход

  • универ. сист. типизации (любой тип является объектом)

  • иерархия (упорядочивание классов)

  • универсальный интерфейс

  • вариативность экземпляров прогр-го об-я

  1. Платформа:

  • многоязыковая поддержка

  • интерапирабельность (повт-е исп-е кода) и масштабируемость

  • унификация доступа к библиотекам

  • соответствие современным стандартам

  1. Инструментарий:

  • многоязыковая среда

  • создание компонентов на наиболее подходящем языке

  • доступность средств данной платформы для широкого использования

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

самостоятельность в разработке трансляторов

  1. Библиотеки .NET Framework

Состоит:

1) спецификация CLS:

  • совокупности правил которые любой .net язык должен выполнять

  • специфицирует min требования для любых .net языков

  • совместимость между языками

Система типов CTS (универсальная система типов)

1) значимые типы (численные, вещественные, символьные)

  • используют стек для размещения

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

  • передаются по значению (копирование значения)

2)ссылочные типы (классы, интерфейсы, массивы)

  • не используют указатели

  • сохраняются в динамической памяти

  • уничтожаются сборщиком мусора

  • предаются по ссылке (копируют ссылки)

.NET сборки(assemblies):

  • программные компоненты – DLL и EXE файлы

  • наименьшая deployment единица в CLR

  • имеет уникальный номер версии

  • нет конфликтов с версиями

  • несколько различных версий одной сборки могут существовать и использоваться одновременно

  • состоят из:

  • MSIL исполнимого кода

  • Метаданных

  • Ресурсов

библиотека классов FCL:

  • стандарт для .net приложений

  • доступна везде где есть net framework

BCL:

  • богатая ОО библиотека с основными классами

  • коллекции ввод/вывод, работа с символами, удалённое управление, многонитевость

ADO.NET

  • доступ к БД

  • disconnected модель данных

  • сильная поддержка XML

ASP.NET и WinForms:

потребительский интерфейс приложения – Web базированный, Windows GUI, Web услуги

  1. Приложения .NET Framework

  2. Свободная реализация .NET Framework

  3. Основные возможности C#

Эволюция:

Начало развития в 1963г. Томпсон-язык B

1972г. Томпсон-язык С.

1984г. Язык С++

2000г. Язык С#.

Что такое С#:

  • смесь С++, java, Delphi

  • концепция разделения типов на ссылочные и значимые

  • поддержка xml документации

Особенности программ на C#:

  • Совокупность описаний (набор классов и интерфейсов)

  • Классы содержат как один, так и много точек входа программы

  • Программы состоят из нескольких файлов

Пространство имен может быть разнесено на несколько файлов

  1. Структура программ C#

Программа на C#:

  • предст. совокупность описаний классов, структур и других типов

  • классы содержат метод Main () – точку входа в прогу

  • приложения могут состоять из нескольких файлов

  • в одном файле может быть несколько классов, структур и других типов

  • классы расположены в пространстве имён

  • одно namespace может располагаться в нескольких файлах

Область описания:

Объекты могут быть описаны:

  • пространство имён (классы, инт., стр.,…)

  • в классах

  • в перечислении (const…)

Контекст. сосл-я:

  • недопустимо двухкратное описание в пред. обл.

Декларации:

  • Локальные переменные (название типа и переменной)

  • Классы

  • константы

Константы:

  • const времени компиляции

  • времени исполнения readonly

Операторы:

  • type of

size of