2.74M
Category: softwaresoftware

Программное обеспечение электронных средств. Тема 6 (часть 4)

1.

1
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ЭЛЕКТРОННЫХ СРЕДСТВ
1-39 02 02 «Проектирование и производство
программно-управляемых электронных
средств»
Тонконогов Б.А.
к.т.н.
доцент

2.

2
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ЭЛЕКТРОННЫХ СРЕДСТВ
Тел.: (+375 29) 6300762
E-mail: [email protected]
Тонконогов Б.А.
к.т.н.
доцент

3.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 3
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ВСТРОЕННЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ
В языке C# предоставляется целый класс математических методов Math для
вычисления различных математических функций (cos, sin, tg, степени и так
далее). В этом классе методы статические
Для его подключения нужно прописать используемое пространство имен:
using System
Для вызова метода, необходимо прописать: Math.Функция()
В указанном классе имеется порядка 25 методов математических вычислений
Следует обратить внимание на то, что вычисление синуса, косинуса и так
далее вычисляется в радианах. Поэтому если нужны градусы, нужно
произвести операцию конвертации

4.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 4
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ВИРТУАЛЬНЫЕ МЕТОДЫ И ПЕРЕОПРЕДЕЛЕНИЕ
Некоторые члены могут быть объявлены как виртуальные для определения
фиксированной, но допускающей переопределение реализации.
Полиморфный интерфейс класса конструируется с использованием любого
количества виртуальных или абстрактных членов
Полиморфизм предоставляет подклассу способ определения собственной
версии метода, определенного в его базовом классе, с использованием
процесса, который называется переопределением метода. Если базовый
класс желает определить метод, который может быть (но не обязательно)
переопределен в подклассе, он должен пометить его ключевым словом virtual

5.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 5
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ВИРТУАЛЬНЫЕ МЕТОДЫ И ПЕРЕОПРЕДЕЛЕНИЕ
Методы, помеченные ключевым
словом virtual, называются
виртуальными методами
Когда класс желает изменить
реализацию деталей виртуального
метода, он делает это с помощью
ключевого слова override. Например,
Salesperson и Manager могли бы
переопределить GiveBonus(),
предполагая, что, например,
PTSalesPerson не будет
переопределять GiveBonus(), а потому
просто наследует версию,
определенную Salesperson

6.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 6
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНТЕЙНЕРЫ
Контейнер – структура, позволяющая инкапсулировать в себе объекты
любого типа
Относительно обобщенных типов коллекций в .NET используется
терминология контейнер и коллекция вперемешку, однако коллекция –
программный объект, содержащий в себе, тем или иным образом, набор
значений одного или различных типов, и позволяющий обращаться к этим
значениям
Объектами (переменными) контейнеров являются коллекции, которые уже
могут содержать объекты одного определенного типа

7.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 7
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНТЕЙНЕРЫ
Контейнеров (в явном виде) в C# нет, а есть только обобщенные
(System.Collection.Generic) и необобщенные (System.Collection) коллекции. В
C# не используют термин Container для описания структур данных, таких как
List, Dictionary и так далее. Обычно, все это называют коллекциями.
Относительно обычных массивов, они также относятся к коллекциям
Что касается термина Container, он чаще применяются в контексте некоторых
шаблонов проектирования, например, DI- или IoC-контейнеры

8.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 8
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ИТЕРАЦИОННЫЕ КОНСТРУКЦИИ И ОПЕРАТОРЫ
Все языки программирования предлагают способы для повторения блоков
кода до тех пор, пока не будет удовлетворено условие завершения
В C# предоставляются 4 итерационных конструкции (цикла):
• for
• foreach / in
• while
• do / while

9.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 9
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ИТЕРАЦИОННЫЕ КОНСТРУКЦИИ И ОПЕРАТОРЫ
Если требуется повторять блок кода фиксированное количество раз, хороший
уровень гибкости предлагает оператор for. Он позволяет указать, сколько раз
должен повторяться блок кода, а также задать условие завершения
Все приемы, освоенные в языках С, C++ и Java, применимы также при
создании операторов for в С#. Можно создавать сложные условия
завершения, строить бесконечные циклы, циклы в обратном направлении (с
помощью операции --) и использовать ключевые слова для переходов goto,
continue и break

10.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ10
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ИТЕРАЦИОННЫЕ КОНСТРУКЦИИ И ОПЕРАТОРЫ
Ключевое слово foreach в C# позволяет проходить в цикле по всем элементам
контейнера, не требуя проверки его верхнего предела. Однако в отличие от цикла
for, цикл foreach будет выполнять проход по контейнеру только линейным (n + 1)
образом (то есть нельзя выполнять проход по контейнеру в обратном
направлении, пропускать каждый третий элемент и тому подобное)
Тем не менее, если требуется просто выполнить проход по коллекции элемент за
элементом, цикл foreach – именно то, что нужно. Ниже приведены два примера
использования цикла foreach – один для обхода массива строк и один для обхода
массива целых чисел. Следует обратить внимание, что тип данных, указанный
перед ключевым словом in, представляет тип данных контейнера

11.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 11
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ИТЕРАЦИОННЫЕ КОНСТРУКЦИИ И ОПЕРАТОРЫ
Элементом, который следует за ключевым словом in, может быть простой массив
(как в приведенном примере) или, точнее, любой класс, который реализует
интерфейс IEnumerable. Библиотеки базовых классов .NET поставляются с рядом
коллекций, содержащих реализации общих абстрактных типов данных. Любой из
этих элементов (такой как обобщенный List<T>) может использоваться внутри
цикла foreach
В итерационных конструкциях foreach также допускается применять неявную
типизацию. При этом компилятор будет корректно выводить соответствующий
«тип типа». На примере метода LINQ (Language Integrated Query), даже не зная
точного типа данных переменной subset, все же можно выполнить итерацию по
результирующему набору, используя неявную типизацию

12.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ12
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ИТЕРАЦИОННЫЕ КОНСТРУКЦИИ И ОПЕРАТОРЫ
Итерационную конструкцию while удобно применять, когда требуется, чтобы
блок операторов выполнялся до тех пор, пока не будет удовлетворено
условие завершения. Внутри контекста цикла while необходимо позаботиться
о том, чтобы это условие действительно удовлетворялось, иначе получится
бесконечный цикл. Ниже приведен пример, в котором на консоль выводится
сообщение «In while loop» до тех пор, пока пользователь не завершит цикл
вводом «yes» в командной строке

13.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ13
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ИТЕРАЦИОННЫЕ КОНСТРУКЦИИ И ОПЕРАТОРЫ
Тесно связанным с while является цикл do / while. Подобно простому while,
цикл do / while применяется тогда, когда какое-то действие должно
выполняться неопределенное количество раз. Разница между этими двумя
циклами состоит в том, что цикл do / while гарантирует выполнение
соответствующего блока кода хотя бы один раз, в то время как цикл while
может его вообще не выполнить, если условие с самого начала оказывается
ложным

14.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И
ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Вопросы
1.
Встроенные математические функции
2.
Виртуальные методы и переопределение
3.
Контейнеры
4.
Итерационные конструкции и операторы
14

15.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И
ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Самостоятельная работа
1.
Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э.
Троелсен. – 6-е изд.: Пер. с англ. – М.: ООО «И. Д. Вильямс», 2013. – 1312 с.:
ил. – Парал. тит. англ. (Главы 4, 5, 6, 13)
15

16.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ16
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕГРУЗКА МЕТОДОВ И ОПЕРАЦИЙ
Как и другие современные языки объектно-ориентированного
программирования, C# допускает перегрузку методов
Когда определяется набор одинаково именованных методов, которые
отличаются друг от друга количеством (или типом) параметров, то такой
метод перегружен
Такой код не только труден в сопровождении, но и заставляет помнить имя
каждого метода

17.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ17
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕГРУЗКА МЕТОДОВ И ОПЕРАЦИЙ
Используя перегрузку, можно предоставить вызывающему коду возможность
вызова единственного метода по имени, например Add(). Ключевой момент
заключается в обеспечении отличающегося набора аргументов для каждой
версии метода (различий только в возвращаемом типе не достаточно)
Теперь вызывающий код может просто обращаться к методу Add() с
требуемыми аргументами, а компилятор будет самостоятельно находить
подходящую для вызова реализацию на основе предоставленных аргументов

18.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ18
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕГРУЗКА МЕТОДОВ И ОПЕРАЦИЙ
Подобно любому языку программирования, в C# имеется готовый набор
лексем, используемых для выполнения базовых операций над встроенными
типами
Например, одна и та же операция «+» может применяться к большинству
встроенных типов данных С#. По сути, функциональность указанной операции
уникальным образом базируются на определенных типах данных (например,
строках или целых числах)
Когда эта операция применяется к числовым типам, получается
арифметическая сумма операндов. Однако когда та же операция
применяется к строковым типам, получается конкатенация строк

19.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ19
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕГРУЗКА МЕТОДОВ И ОПЕРАЦИЙ
Язык C# предоставляет возможность строить специальные классы и
структуры, которые также уникально реагируют на один и тот же набор
базовых лексем (вроде операции «+»). Хотя не каждая встроенная операция
C# может быть перегружена, многие операции перегрузку допускают

20.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ20
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕГРУЗКА МЕТОДОВ И ОПЕРАЦИЙ
Таким образом, C# предлагает возможность строить типы, которые могут
уникальным образом реагировать на различные встроенные, хорошо
известные операции
Перегрузка операций обычно полезна только при построении атомарных
типов данных. Текст, точки, прямоугольники, функции и шестиугольники –
подходящие кандидаты на перегрузку операций. Люди, менеджеры,
автомобили, подключения к базе данных и Web-страницы – нет
Если перегруженная операция затрудняет пользователю понимание
функциональности типа, то не следует использовать средство перегрузки
операций

21.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ21
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
АБСТРАКТНЫЕ КЛАССЫ
Учитывая, что многие базовые классы склонны быть довольно
неопределенными сущностями, более удачное проектное решение не должно
разрешать непосредственное создание в коде нового объекта, например
Employee
В C# можно добиться этого с использованием ключевого слова abstract в
определении класса, таким образом, создавая абстрактный базовый класс
После этого попытка создать экземпляр класса Employee приведет к ошибке
на этапе компиляции

22.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ22
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
АБСТРАКТНЫЕ КЛАССЫ
На первый взгляд может показаться очень странным, зачем определять класс,
экземпляр которого нельзя создать непосредственно. Однако, базовые
классы (абстрактные или нет) очень полезны тем, что содержат общие данные
и общую функциональность для унаследованных типов. Используя эту форму
абстракции, можно также моделировать общую «идею» функциональности, а
не обязательно конкретную сущность
Также следует понимать, что хотя непосредственно создать экземпляр
абстрактного класса нельзя, он все же присутствует в памяти, когда создан
экземпляр его производного класса
Таким образом, совершенно нормально (и принято) для абстрактных классов
определять любое количество конструкторов, вызываемых опосредованно
при размещении в памяти экземпляров производных классов

23.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ23
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
АБСТРАКТНЫЕ КЛАССЫ
Теперь получилась определенная иерархия
классов. С применением правил приведения
типов C# можно добавить больше
функциональности этому проектному решению

24.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ24
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЧАСТИЧНЫЕ ТИПЫ
При желании можно разнести единственный класс по нескольким файлам С#,
чтобы изолировать рутинный код от более ценных полезных членов.
Механизм частичных классов позволяет вынести конструкторы и поля данных
в совершенно новый файл
Первый шаг состоит в добавлении ключевого слова partial к текущему
определению класса и вырезании кода, который должен быть помещен в
новый файл

25.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ25
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЧАСТИЧНЫЕ ТИПЫ
Предполагая, что к проекту добавлен новый класс, можно переместить поля
данных и конструкторы в новый файл посредством простой операции
вырезания и вставки. Кроме того, необходимо добавить ключевое слово
partial к этому аспекту определения класса

26.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ26
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЧАСТИЧНЫЕ ТИПЫ
Вся идея, положенная в основу частичного класса, касается только этапа
проектирования. Как только приложение скомпилировано, в сборке
оказывается один цельный класс
Единственное требование при определении частичных типов связано с тем,
что разные части должны иметь одно и то же имя и находиться в пределах
одного и того же пространства имен .NET
Например, Microsoft Visual Studio изолирует сгенерированный визуальным
конструктором код в частичном классе, позволяя сосредоточиться на
специфичной для приложения программной логике

27.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ27
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Механизм конструкторов позволяет устанавливать состояния объектов в
момент их создания. Программистам на C# никогда не приходится
непосредственно удалять управляемый объект из памяти (в языке C# нет
даже ключевого слова, подобного delete). Вместо этого объекты .NET
размещаются в области памяти, которая называется управляемой кучей,
откуда они автоматически удаляются сборщиком мусора в какой-то момент в
будущем под управлением среды CLR
Программно взаимодействовать со сборщиком мусора возможно с помощью
класса System.GC (хотя в большинстве проектов .NET это обычно не
требуется). Кроме того, с применением виртуального метода
System.Object.Finalize() и интерфейса IDisposable можно создавать классы,
способные освобождать внутренние неуправляемые ресурсы в определенное
время и в предсказуемой манере

28.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ28
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Сборщик мусора, появившийся в версии .NET 4.0 обладает некоторыми
новыми функциональными возможностями, включая фоновую сборку мусора
и ленивое (отложенное) создание объектов с использованием обобщенного
класса System.Lazy
После того как класс определен, с применением ключевого слова new языка
C# можно размещать в памяти любое количество его объектов. Однако при
этом следует помнить, что это ключевое слово возвращает ссылку на объект
в куче, а не фактический объект. Если ссылочная переменная объявляется как
локальная переменная в контексте метода, она сохраняется в стеке для
дальнейшего использования в приложении. Для вызова членов объекта к
сохраненной ссылке применяется операция точки С#

29.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ29
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
После создания объект будет автоматически удален сборщиком мусора
тогда, когда в нем отпадет необходимость. Сборщик мусора определяет
момент, когда в объекте отпадает необходимость и удаляет объект из кучи
только тогда, когда тот становится недостижимым ни в одной части кодовой
базы
Программирование в среде с автоматической сборкой мусора значительно
облегчает разработку приложений. Программистам на языке C++ хорошо
известно, что если они специально не позаботятся об удалении размещаемых
в куче объектов, утечки памяти не заставят себя долго ждать. На самом деле
отслеживание проблем, связанных с утечками памяти, является одним из
самых длительных (и утомительных) аспектов программирования в
неуправляемых средах. Благодаря назначению сборщика мусора
ответственным за уничтожение объектов, обязанности по управлению
памятью, по сути, сняты с программиста и возложены на среду CLR

30.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ30
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
В редком случае, когда строится класс С#, в котором применяются
неуправляемые ресурсы, очевидно, понадобится обеспечить предсказуемое
освобождение соответствующей памяти. Для примера в консольном
приложении C# по имени SimpleFinalize вставлен класс MyResourceWrapper, в
котором используется неуправляемый ресурс. Теперь необходимо
переопределить метод Finalize(). Как ни странно, применять для этого
ключевое слово override в C# нельзя

31.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ31
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Вместо этого для достижения того же эффекта должен использоваться
синтаксис деструктора (почти как в C++). Причина такой альтернативной
формы переопределения виртуального метода состоит в том, что при
обработке синтаксиса финализатора компилятор автоматически добавляет в
неявно переопределяемый метод Finalize() приличное количество требуемых
элементов инфраструктуры
Финализаторы в C# выглядят очень похожими на конструкторы тем, что
именуются идентично классу, внутри которого определены. Вдобавок они
сопровождаются префиксом в виде тильды (~). Однако в отличие от
конструкторов, они никогда не снабжаются модификатором доступа
(поскольку всегда являются неявно защищенными), не принимают
параметров и не могут быть перегружены (в каждом классе может
присутствовать только один финализатор)

32.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ32
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Специальный финализатор для класса MyResourceWrapper, который при
вызове выдает звуковой сигнал. Очевидно, этот пример предназначен только
для демонстрационных целей. В реальном приложении финализатор будет
только освобождать любые неуправляемые ресурсы, и не будет
взаимодействовать ни с какими другими управляемыми объектами, даже
теми, на которые ссылается текущий объект, поскольку нельзя предполагать,
что они все еще существуют на момент вызова этого метода Finalize()
сборщиком мусора

33.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ33
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Финализаторы могут применяться для освобождения неуправляемых
ресурсов при запуске сборщика мусора. Однако многие неуправляемые
объекты являются дорогостоящими (ресурсоемкими в плане потребления
памяти) ресурсами (например, низкоуровневые подключения к базам данных
или файловые дескрипторы) и часто выгоднее освобождать их как можно
раньше, еще до наступления момента сборки мусора. В качестве
альтернативы переопределению Finalize() класс мог бы реализовать
интерфейс IDisposable, который определяет единственный метод по имени
Dispose()

34.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ34
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
При реализации интерфейса IDisposable предполагается, что после
завершения работы с объектом метод Dispose() должен вручную вызываться
пользователем этого объекта, прежде чем объектной ссылке будет
разрешено покинуть область действия. Благодаря этому объект может
производить любую необходимую очистку неуправляемых ресурсов без
попадания в очередь финализации и без ожидания того, когда сборщик
мусора запустит содержащуюся в классе логику финализации
Интерфейс IDisposable может быть реализован как в классах, так и в
структурах (в отличие от метода Finalize(), который допускается
переопределять только в классах), потому что метод Dispose() вызывается
пользователем объекта (а не сборщиком мусора)

35.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ35
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Имеет смысл вызывать метод Dispose() на любом создаваемом напрямую
объекте, если он поддерживает интерфейс IDisposable. Следует исходить из
того, что в случае, если разработчик класса решил реализовать метод
Dispose(), значит, класс должен выполнять какую-то очистку. Если забыть это
сделать, то память в конечном итоге будет очищена, но это займет больше
времени, чем необходимо
Сборщик мусора запускается только тогда, когда не удается получить
необходимый объем памяти из управляемой кучи (или когда происходит
выгрузка из памяти соответствующего домена приложения). Разработанный в
Microsoft алгоритм сборки мусора хорошо оптимизирован и
предусматривает использование поколений объектов, дополнительных
потоков для финализации объектов и управляемой кучи для обслуживания
больших объектов

36.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ36
ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
Единственным случаем, когда может возникнуть необходимость программно
взаимодействовать со сборщиком мусора с применением класса System.GC,
является построение финализируемых или освобождаемых классов, которые
оперируют неуправляемыми ресурсами
С одной стороны, финализируемые типы – это классы, которые
предоставляют деструктор (переопределяя метод Finalize()) для очистки
неуправляемых ресурсов во время сборки мусора. С другой стороны,
освобождаемые объекты являются классами (или структурами), которые
реализуют интерфейс IDisposable, вызываемый пользователем объекта по
окончании работы с ним. Возможна программная реализация освобождения,
позволяющая совмещать оба эти подхода
Обобщенный класс по имени Lazy позволяет отложить создание
ресурсоемких объектов до тех пор, пока вызывающая сторона действительно
не затребует их. Это помогает сократить количество объектов, сохраняемых
в управляемой куче, и обеспечивает создание ресурсоемких объектов только
тогда, когда они на самом деле требуются в вызывающем коде

37.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И
ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Вопросы
1.
Перегрузка методов и операций
2.
Абстрактные классы
3.
Частичные типы
4.
Конструкторы и деструкторы
37

38.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И
ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Задание
Освоение основ объектно-ориентированного программирования и
функциональности и графического пользовательского интерфейса
интегрированной среды разработки
Используя интегрированную среду разработки Microsoft Visual Studio:
1.
Создать проект типа Console Application
2.
Продемонстрировать примеры реализации:
• перегрузки методов и операторов
• конструкторов и деструкторов
38

39.

1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И
ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Самостоятельная работа
1.
Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э.
Троелсен. – 6-е изд.: Пер. с англ. – М.: ООО «И. Д. Вильямс», 2013. – 1312 с.:
ил. – Парал. тит. англ. (Главы 5, 13 - 15)
39
English     Русский Rules