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

Конструкции:

  • элементарные

  • составные

  • прогр-е конст. упр-я switch и case

  • усл-е

  • повт. и циклов

  • перехода break, continue, return, goto

  • + конст. управления исключениями (throw, try-catch, finally)

спец. констр. (lock – блок. объектов, cheked/uncheked, fixed)

Преимущества С#:

  • Объектная ориентированность

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

  • Безопасность

  • Унифицированная система типизации

  • Событийное ориентирование

  • Родной язык для создания приложений

  • Объединений лучших идей

Недостатки С#:

  • Сложность синтаксиса

  • Небольшое количество новых идей

  • Неполностью объясненный язык

  • Невысокая производительность

не кросс- платформенный язык

  1. Документирование программ C#

  2. Понятие семантики

Общие сведения:

Семантика-интерпретация абстрактного синтаксиса, выраженного в терминах той или иной математической модели.

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

  • Ориентированы на компиляцию (множество преобразований)

  • Ориентированы на интерпретацию (множество описаний)

Виды семантики:

  • Операционные – смысл конструкций языка в терминах переходов абстр. машины из одного состояния в другое

  • Препозиционные - смысл конструкций языка в терминах множества формул описывающих состояние объектов программы

Денотационные - … в терминах абстракции функций на состояниях программы

  1. Теория вычислений Д.Скотта. Семантика C#

1969 – Д. Скотт создал для формализации на основе доменов Домен - аналог множества, моделирующий самоприменимые функции и множества.

Последовательность построения теории:

  • Перечисление стандартных доменов

  • Определение конечных доменов с явно перечисляемыми элементами

  • Определение конструкторов

Конструкторы доменов:

  • функциональное пространство

    • Декартово произведение

    • Последовательность

    • Дизьюктивная сумма

Синтаксис подмножества языка С#:

  • формализируем синтаксис

Порядок построения семантики вычислений:

  • Определение синтаксиса доменов (ide, Exp, com)

  • Определение вычислительной модели

  • Определение семантических функций

Определение семантических предложений

  1. Понятие класса и объекта

класс - общая сущность, которая определяет как совокупность объектов

объект – представляет сущность мира

свойство – пропозициональная функция определённая на произвольном типе данных

метод – операция определённая над объектами некоторого класса

Основные работы в сфере моделирования ооп:

  • 1924 – теория простых функций

  • 1934 – лямбда – исчисление

  • 80е Скотт и Фурман – аппарат определённых дискрепций

  • 90е – схема двухуровневого моделирования объектов

Концептуализация как модель объекта:

  1. модель основывается на типизированном альфа- счислении, семантика которого моделируется при помощи полных и непрерывных решёток Скотта.

  2. Вводятся аппликативные структуры с приписыванием типов

  3. Для формализации определений используются определённые дескрипции Скотта-Фурмана вида: I x Ф, что означает «тот единственный x для которого Ф истинно»

  4. произвольный объект моделируется тройкой <концепт, индивид, состояние>

  1. Классы и его элементы в C#

Класс в С#, как и в других языках программирования, — это пользовательский тип данных (user defined type, UDT), который состоит из данных (часто называемых атрибутами или свойствами) и функций для выполнения с этими данными

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

важных преимуществ объектно-ориентированных языков программирования.

Для классов С# можно определить любое количество конструкторов. Эти специальные методы классов позволяют создавать объекты данного класса, настраивая при этом их исходное состояние нужным вам образом. Любой класс С# автоматически снабжается конструктором по умолчанию (не принимающим никаких параметров). Этот конструктор в С# (в отличие от C++) при создании объекта автоматически присвоит всем переменным-членам класса безопасные значения по умолчанию. Кроме того, вы можете, как переопределить конструктор по умолчанию, так и создать такое количество пользовательских конструкторов (принимающих параметры), сколько вам необходимо.

Изменяемые элементы поля:

  • изменяемые элементы (поля) содержат данные для сущности класса

  • могут быть произвольного типа

  • могут иметь заданную видимость

  • при объявлении можно задавать значение

Поля- const:

являются элементами класса как и изм. поля

  • предшествует спец. слово const

  • при декларации требуется задать значение

  • нельзя изменять во время исполнения

Поля только на чтение (readonly):

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

  • предшествует спец слово readonly

  • на практике runtime константа

Методы – процедура или функция находящаяся в описании класса:

  • в C# нет глоб. функции

  • могут описываться как элементы типа (класса или структуры)

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

  • могут принимать параметры и возвращать значение

  • имеют несколько видов передаваемых параметров

  • могут иметь заданную видимость

  • могут быть статичными (не связанными с инстанцией типа)

  • имеют синтаксис близкий к С++ и Java

Конструкторы:

  • используются для создания объектов(сущности, классы)

  • служат для начального установления состояния полей объекта

  • имеют синтаксис как в С++ и Java

  • любой класс может иметь 1 или несколько конструкторов

  • для классов без описанного конструктора C# - компилятор автоматически создаёт публичный конструктор по умолчанию, без параметров

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

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