
- •Лабораторная работа №1 знакомство со средой визуального программирования ms visual studio
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Обзор Microsoft Visual Studio 2005
- •2.2. Создание простого приложения в ms Visual Studio
- •2.2. Отладка программы
- •2.3. Пошаговый режим
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Контрольные вопросы
- •Лабораторная работа №2 управляющие операторы
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Условные операторы
- •2.1.1 Оператор if
- •2.1.2 Оператор switch
- •2.2 Операторы перехода
- •2.2.1 Операторы break и continue
- •2.2.2 Оператор return
- •2.3 Операторы цикла
- •2.3.1 Оператор for
- •2.3.2 Цикл while
- •2.3.3 Цикл do-while
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Контрольные вопросы
- •5. Варианты заданий
- •Лабораторная работа №3 классы. Наследование. Полиморфизм. Интерфейсы.
- •2. Домашнее задание и методические указания по его выполнению
- •2.1 Основные понятия объектно-ориентированного программирования
- •2.2. Класса. Организация классов.
- •2.2.1. Поля и методы
- •2.2.2. Объявление объектов класса. Инициализация членов класса.
- •2.2.3. Конструкторы и деструкторы.
- •2.2.4. Пример работы с классами
- •2.3. Наследование
- •2.4. Полиморфизм.
- •2.4.1. Абстрактные классы.
- •2.5. Интерфейсы.
- •2.5. Реализация интерфейсов
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Библиографический список
2.2.1. Поля и методы
Поля объявляются так же, как переменные и могут иметь любой тип, кроме самого класса, но могут быть указателями на него.
Методы – подпрограммы, которые обеспечивают доступ и управляют данными, определенными в классе. Для объявления метода используется следующая конструкция:
<спецификатор_доступа> <тип> <имя_метода> (<параметры>)
{
//тело метода
}
В теле метода записываются различные операторы, а в скобочках параметры, которые будут переданы данному методу. Параметры находятся в области видимости только своего метода.
Методы по-принципу действия схожи с функциями, фактически они ими являются.
2.2.2. Объявление объектов класса. Инициализация членов класса.
При создании экземпляра класса создается объект, который содержит собственную копию каждого поля и метода класса. Объекты создаются с помощью ключевого слова new. Ниже представлена конструкция данного оператора:
<имя_класса> <имя_переменной> = new <конструктор_класса>
Оператор new динамически выделяет память для объекта и возвращает ссылку на эту область памяти. Таким образом, переменная, определенная в данной конструкции не является объектом, она лишь ссылается на объект, который был физически создан в памяти компьютера оператором new. Следовательно, всем объектам в С# память должна выделяться динамически.
После объявления объекта класса можно инициализировать его поля и методы. Для этого используется оператор точка (.), который имеет следующую конструкцию:
<имя_объекта>.<член_объекта>
2.2.3. Конструкторы и деструкторы.
Существует специальная категория методов, отвечающих за такие действия с объектами, как инициализация, присваивание, управление памятью и преобразование типов. Такие методы называются конструкторами. Они вызываются компилятором неявно каждый раз, когда объект класса создается оператором new. В объявлении конструктора его имя совпадает с именем класса. Конструкторов в классе может быть множество благодаря понятию перегрузки функции. Для конструктора типично копирование предоставляемых ему параметров в поля объекта, этим могут ограничиваться его функции.
Конструктор имеет следующий вид:
<имя_класса>()
{
//тело конструктора
}
Все классы имеют конструктор независимо от того определен он или нет. В С# по умолчанию предусмотрен конструктор, который присваивает нулевые значения всем переменным экземпляра (для переменных обычного типа) и null (для переменных ссылочного типа). Но если конструктор явно объявлен в классе, то конструктор по умолчанию использоваться не будет.
Функции обратные функциям конструктора выполняют деструкторы. Они предназначены для освобождения памяти от объектов класса. Однако в С# имеется более эффективный механизм для этого, он называется «сборкой мусора». Когда в С#-программе отсутствует обращение к объекту, то он рассматривается как не использующийся более, и система автоматически без участия программиста, освобождает занимаемую им память, которая в дальнейшем может быть выделена под другие объекты. «Сборка мусора» периодически осуществляется в ходе всей программы.
В С# все же предусмотрена возможность создания деструктора, который удаляет объект перед «сборкой мусора». Он имеет следующую конструкцию:
~ <имя_класса> ()
{
//тело деструктора
}
Деструктор вызывается во всех случаях, когда объект должен быть удален из памяти.