Практическое занятие № 20. Создание классов
1 Цель занятия
Получить практические навыки создания классов в приложении Windows Forms
2 Перечень оборудования и программного обеспечения
Персональный компьютер
Microsoft Office (Word)
Microsoft Visual Studio
3 Краткие теоретические сведения
Классы и объекты
Класс является основой для создания объектов. Объекты являются экземплярами класса.
При определении класса объявляются данные, которые он содержит, и код (методы), работающие с этими данными. Данные и методы, составляющие класс, называются членами класса. Данные содержатся в переменных экземпляра, которые определены классом, а код содержится в методах. В С# определены несколько специфических разновидностей членов класса. Это — переменные экземпляра, статические переменные, константы, методы, конструкторы, деструкторы, индексаторы, события, операторы и свойства.
Непосредственно инициализация данных в объекте (переменных экземпляра) происходит в конструкторе. В классе могут быть определены несколько конструкторов.
Синтаксис класса:
class имя_класса{
тип_доступа тип имя_переменной1;
тип_доступа тип имя_переменной2;
…
тип_доступа возвращаемый_тип
имя_метода1(список_параметров) {тело_метода}
}
где тип_доступа может быть public, private, protected, internal.
Члены класса с типом доступа public доступны везде за пределами данного класса, с типом доступа protected – внутри членов данного класса и производных, с типом доступа private - только для других членов данного класса. Тип доступа internal применяется для типов, доступных в пределах одной сборки.
Пример 1:
class Animal
{
public string Name;
private double Weight;
protected string Type;
public void Animal(double W, string T, string N)
{
Weight = W;
Type = T;
Name = N;
}
public int GetWeight() { return Weight; }
}
Создание объекта
имя_класса имя_объекта = new имя_класса();
При создании объекта класса происходит вызов соответствующего конструктора класса.
Конструктор и деструктор
Конструктор класса – метод для инициализации объекта при его создании. Он имеет то же имя, что и его класс. В конструкторах тип возвращаемого значения не указывается явно. Конструкторы используются для присваивания начальных значений переменным экземпляра, определенным классом, и для выполнения любых других процедур инициализации, необходимых для создания объекта. Все классы имеют конструкторы независимо от того, определен он или нет. По умолчанию в С# предусмотрено наличие конструктора, который присваивает нулевые значения всем переменным экземпляра (для переменных обычных типов) и значения null (для переменных ссылочного типа). Но если конструктор явно определен в классе, то конструктор по умолчанию использоваться не будет.
имя_класса(список_параметров) {тело_конструктора}
Деструктор – метод, вызывающийся автоматически при уничтожении объекта класса (непосредственно перед “сборкой мусора”). Деструктор не имеет параметров и возвращаемого значения.
~имя_класса() {тело_деструктора}
Пример 2. Создание класса «Животное» с полями: название, вес и прежний вес.
Решение.
Форма Windows-приложения с элементами, позволяющими отображать и обрабатывать значения полей заданного класса:
Описание созданного класса (после класса Form1):
Метод button1_Click() класса Form0, осуществляющий обращение к методам созданного класса:
4 Порядок выполнения работы
4.1 Изучить теоретические сведения и задание к работе.
4.2 В соответствии с вариантом задания создать класс с необходимыми данными (полями) и методами.
4.3 Создать метод обработки данных, осуществляющий обращение к методам созданного класса.
5 Содержание отчета
5.1 Название работы
5.2 Цель работы
5.3 Листинг и скрины отлаженной программы в соответствии с вариантом задания
6 Варианты заданий
6.1 Класс "Квадрат" с полями: центр квадрата и его сторона.
6.2 Класс "Время" с полями: часы, минуты и секунды.
6.3 Класс "Прямоугольник" с полями: верхняя левая и правая нижняя точки.
6.4 Класс "Конус" с полями: радиус окружности основания и высота.
6.5 Класс "Куб" с полями: координаты центра и сторона.
6.6 Класс «Компьютер» с полями: тактовая частота процессора, объем ОЗУ, емкость диска.
6.7 Класс «Служащий» с полями: табельный номер, номер подразделения и оклад.
6.8 Класс «Накладная» с полями: номер, дата отпуска и сумма.
6.9 Класс «Проект» с полями: номер проекта, сумма, дата исполнения.
6.10 Класс «Здание» с полями: количество этажей, подъездов и квартир на этаже.
6.11 Класс «Студент» с полями: ФИО, номер группы, номер зачетки.
6.12 Класс "Дата" с полями: число, номер месяца и две последние цифры года.
6.13 Класс "Вектор на плоскости" с данными проекция вектора на оси X и Y.
6.14 Класс "Окружность" с полями: центр и радиус окружности.
6.15 Класс "Дробь" с полями: числитель и знаменатель.
7 Используемая литература
7.1 Г. Гагарина, Е. В. Кокорева, Б. Д. Виснадул Технология разработки программного обеспечения. Форум, Инфра-М, 2009
7.2 Эндрю Троелсен Язык программирования С# 2010 и платформа .NET 4.0, М., ВИЛЬЯМС, 2011
7.3 А. Марченко C#. Введение в программирование, М, Вильямс, 2009
7.4 http://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx.