- •1. Эволюция языков прогр-я.
- •2. Что такое .Net? Обзор технологий программирования под Windows.
- •3. Компоненты платформы .Net. Что такое .Net Framework?
- •4. Модель выполнения приложения в среде .NetFramework. Промежуточныйязык Microsoft (Microsoft Intermediate Language, msil). Сборки
- •5. Обзор встр. Типов данных в с#. Применение встроенной функц-сти типов данных.
- •6. Операции ввода-вывода. Формат вывода. Пространство имён System. Класс Math. Пространство имён System и класс Math
- •7. Арифметические операции. Операции отношений и логические операции. Операторы и выражения в c# .
- •Операторы сравнения в c#. Лог. Операции для условий
- •Операторы
- •8. Одномерные массивы в c#. Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •9. Двумерныемассивы в c#. Виды двумерных массивови способы их определения; способы создания; построчный вывод на экран
- •10. Структуры в c#. Создание структур, доступ к элементам, массивы структур.
- •11.Объект и его свойства. Характеристики ооп.
- •12.Классы в c#. Форма определения класса. Члены класса: методы, поля, свойства и события.
- •13.Конструкторы. Параметризованные конструкторы. Использование оператора new.
- •14. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •15. Деструкторы. Сборка «мусора».
- •16. Определение методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов.
- •17. Модификаторы ref, out, params параметров методов.
- •18. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •19.Область видимости и время существования переменных.
- •20. Преобразование и приведение типов.
- •21. Обработка исключительных ситуаций.
- •22. Перегрузка методов и перегрузка конструкторовкак механизм реализации полиморфизма. Виды конструкторов.
- •23. Понятие стека. Класс «Стек из символов», его основные методы.
- •24. Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •25. Свойства как механизм реализации инкапсуляции. Формат записи свойств.
- •26. Индексаторы. Специальные приемы построения типов. Создание одномерных и двумерных индексаторов.
- •27.Наследование. Базовые и производные классы. Доступы к членам базовых классов.
- •28.Конструкторы и наследование (проект «Наследование»).
- •29. Ссылки на базовый класс и объекты производных классов.
- •30. Виртуальные методы и их переопределение.
- •31. Абстрактные классы.
- •32. Понятие интерфейса. Определение интерфейса.
- •33. Способы реализации интерфейса.
- •34.Некоторые станд.Интерфейсы среды .Net Framework.
- •35. Механизмы реализации полиморфизма в c#.
- •36. Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация).
- •37. Коллекции и наборы. Обзор коллекций. Интерфейсы коллекций. Классы коллекций общего назначения.
- •38. Классы ArrayList, Queue, Stack. Методы работы с различными структурами данных.
- •39. Динамическая идентификация типов. Проверка типа с помощью ключевого слова is. Использование операторов as, typeof.
- •40. Обобщение. Разработка обобщенных наборов, методов, классов.
- •41. Отражение и атрибуты. Понятие отражения. Класс System.Type. Получение информации о методах и типах. Атрибуты. Основы применения атрибутов.
- •42.Принципы работы Windows-приложений c пользователем.
- •43. Делегаты. Назначение делегатов. Многоадресатная передача.
- •44. События. Объявление и генерация событий. Реализация обработчиков событий.
- •Объявление события:
- •45.Понятие компонента и компонентной модели, компонентно-ориентированного программирования.
- •46.Принципы и технологии внедрения и связывания объектов. Ос Windows позволяет:
10. Структуры в c#. Создание структур, доступ к элементам, массивы структур.
Структуры, как и классы, используются как контейнерные объекты для многих видов объектов данных. Они могут реализовывать конструктуры, константы, поля, свойства, индексаторы, операторы и вложенные типы, т. е. структуры поддерживают все возможности, которые реализуются с помощью классов. Структуры во многом схожи с классами. Но классы являются ссылочными типами и поэтому только ссылаются на данные, которые в них хранятся. Структуры хранят действительные значения. Память для структур выделяется в стеке. По этой причине доступ к структурам осуществляется быстрее, чем классам, которые сохраняются в куче. Структуры не поддерживают наследования, но они, как и классы, могут реализовывать интерфейсы.Объявление структуры с помощью слова struct. [<атрибут><модификатор>struct<идентификатор>: <интерфейс><тело структуры>;]Пример: usingSystem;ClassusesStruct
{ struct point
{ public double x,y;
public point (double x, double y)
{ this.x = x;
this.y = y;}
}
static void Main ()
{ point [ ] pt = new point [5]; …
for (int i = 0; i < 5; i + +)
{ pt [i] = new point (i, i+2);
Console. Writeline (“{0}”, i);
Console. Writeline (“Значение x = {0}”, pt [i].x);
Console. Writeline (“Значение y = {0}”, pt [i].y); }
} }
Все базовые типы в С# в основном являются типами структур (sbyte, int, long), т. е. имена встроенных типов только псевдонимы соответствующим структурам пространства имён System. Стуктуры инициализируются только с помощью вызова конструктора. Структуры не поддерживают наследования. Однако, как и другие типы, они являются производными единого базового класса System. Object.
11.Объект и его свойства. Характеристики ооп.
В середине 80-х годов XXв. в программировании возникло новое направление, основанное на понятии объекта. ООП предназначено для написания сложных систем. Возникла потребность разделить программы не просто на процедуры, а на полностью независимые и самостоятельные классы процедур, которые сами отвечают за свое внутреннее состояние и внешнее поведение. Их отличительная черта состоит в том, что базируясь на эти классы, можно строить совершенно различные приложения.
Понятие объекта.Объект– это некая отдельная сущность, выделяющаяся среди других сущностей особыми свойствами, поведением, взаимодействием с себе подобными объектами приложения. Реальные объекты окружающего нас мира обладают тремя базовыми характеристиками: 1.они имеют набор свойств. Совокупность свойств объекта определяет его состояние. Как правило, свойства – это набор переменных и констант, в которых хранятся значения, определяющие параметры объекта. 2.Они способны разными методами изменять эти свойства. Метод–процедура, которая реализует возможные с объектом действия. 3.Способны реагировать на события, возникающие внутри самого объекта. События – это аналог сообщений, которые получают и отправляют объекты. Объекты, имеющие общие свойства, методы обработки данных, объединяются в классы. Класс – это новый тип данных, основанный на единой структуре объекта. При создании класса в современных средах программирования задаются 2 блока: 1.Данные - описываются все структуры данных, с которыми будет работать данный класс, а также создаются экземпляры объектов. 2.Методы- описываются свойства и методы обработки этих данных, еще говорят, описывается поведение данного класса. Классу присваивают имя.
Перед тем как начать создавать класс, необходимо определить три основных момента: 1.Какие действия должны выполнять объекты класса? 2.Что должен содержать класс объектов для выполнения действий? 3.Какие действия присущи объектам данного класса? Класс характеризуется следующими основополагающими понятиями ООП. 1.Наследование. Позволяет создавать новые классы на основе имеющегося класса, с наследованиемвсех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым. Если первый называется базовым, то второй – производным классом (или подклассом). Иерархия. Производный класс сам может служить базовым. От одного базового класса можно образовывать несколько производных. Знание иерархии классов важно для понимания процессов выдачи ответов на сообщение. При получении сообщения объект ищет в протоколе методов экземпляра своего класса метод, совпадающий с именем сообщения. Если такого метода нет, он ищется в списке методов базового класса и т.д. когда метод обнаружен, он выполняется и выдается ответ. Если нигде нет, вплоть до корня дерева, метод не обнаружен, выдается сообщение об ошибке. 2. Полиморфизм. Объекты разных классов могут использовать одноименные методы, работающие по-разному для разных объектов. Или, другими словами, различные объекты выполняют одно и то же действие по-своему. В связи с этим в большинстве случаев методы базового класса у производных классов приходится переопределять. Итак, свойство объектов переопределять методы базового (наследуемого) класса и называется полиморфизмом. Полиморфизм проявляется в том, что одно и то же сообщение может посылаться разным объектам, и понимают они его каждый по-своему. Это увеличивает наглядность программ, поскольку не надо беспокоиться о случайном совпадении имен сообщений. Классы также являются объектами и им тоже можно посылать сообщение. Ведь сообщение – это вызов методов с заданными параметрами. 3. Инкапсуляция. Скрытие сложного механизма действия объекта, т.е. скрытие деталей, несущественных для использования объекта. Определив класс, можно создавать объекты этого класса и манипулировать ими, используя методы. Объекты, принадлежащие одному и тому же типу, образуют коллекцию. Причем, это будут объекты не обязательно одного класса.Свойства.Во многих языках программирования свойства реализуются в виде пары методов: метод, получающий текущее значение свойства, называется акцессор; метод, задающий новое значение свойства — мутатор. Принято называть процедуры свойств именем свойства с приставками get и set.С точки зрения пользователя, свойства выглядят практически так же, как и обычные поля класса. Им можно присваивать некоторые значения и получать их обратно. Свойства позволяют не только возвращать и изменять значение внутренней переменной класса, но и выполнять дополнительные функции.
События.Событийная модель применяется повсеместно, но наиболее часто при создании интерфейса пользователя, когда каждое действие пользователя представляется в виде события и передается определенному объекту. Для объявления события в C# используются делегаты. Когда происходит событие, вызываются все методы делегатов, переданных классу клиентами. События могут использоваться только в том классе, в котором они описаны и не могут напрямую использоваться в порожденных классах.