Теория на практике
В прошлом уроке мы теоретически познакомились с понятиями класса и объекта. Теперь реализуем это на практике, описав робота с помощью классов и объектов.
Создание класса «Робот»
Для описания робота создадим класс. Рекомендуется создавать отдельный файл для каждого класса. В проекте, рядом с основным файлом, создайте новый файл робот.cs. Расширение .cs указывает на файл C#.
Внутри файла:
- Укажите используемые библиотеки: using System; (даже если пока не используется, это стандартная практика).
- Укажите пространство имён, например: namespace Project { … } (используйте то же пространство имён, что и в основном классе).
- Создайте класс: class Робот { … }
Поля и методы класса
Внутри класса описываем поля (переменные) и методы (функции), представляющие характеристики робота. На данном этапе мы описываем «скелет» или «чертеж» робота. Конкретные роботы (объекты) будут созданы на основе этого класса.
Наш робот будет иметь следующие характеристики:
- Название (строка)
- Вес (число)
- Координаты (массив)
Модификаторы доступа и объявление полей
Перед описанием полей указываем модификатор доступа:
- public: поле доступно отовсюду.
- protected: поле доступно внутри класса и в классах-наследниках (об этом подробнее в следующих уроках).
- private: поле доступно только внутри класса.
На начальном этапе будем использовать public. В дальнейшем рассмотрим другие модификаторы.
Пример объявления полей:
public string Name;
public int Weight;
public byte[] Coordinates;
Создание и использование объектов
Объект создаётся внутри функции Main основного класса:
Робот robot = new Робот();
Это создаёт объект типа Робот и выделяет для него память. Теперь можно обращаться к полям объекта через точку:
robot.Name = "Бог";
robot.Weight = 800;
robot.Coordinates = new byte[] { 10, 20, 30 }; // Выделение памяти для массива
Значения полей можно вывести на экран:
Console.WriteLine($"Имя робота: {robot.Name}, вес: {robot.Weight}");
Зачем использовать классы?
Использование классов структурирует код, делает его более понятным и удобным для работы, особенно при большом количестве объектов. Без классов, для каждого объекта пришлось бы создавать множество отдельных переменных, что затруднило бы понимание и поддержку кода.
Добавление методов
Для добавления функциональности ко всем объектам, добавляем методы в класс. Например, добавим метод для «полёта»:
public void Fly() {
// Реализация полёта
}
Этот метод будет доступен для всех объектов типа Робот.
Инкапсуляция и модификатор private
Для обеспечения инкапсуляции (защиты данных), поля обычно объявляются с модификатором private. Доступ к ним осуществляется через специальные методы (сеттеры и геттеры):
private string name;
public void SetName(string newName) {
name = newName;
}
public string GetName() {
return name;
}
В этом уроке мы освоили основы работы с классами и объектами в C#. В следующих уроках рассмотрим более подробно работу с классами и объектами, а также другие модификаторы доступа и дополнительные возможности.