C# - Классы: Пособие для начинающих

Здравствуйте, будущие программисты! Сегодня мы отправимся в увлекательное путешествие в мир классов C#. Не волнуйтесь, если вы никогда раньше не писали код – я буду вашим доброжелательным проводником, объясняя все шаг за шагом. Итак, погружаемся!

C# - Classes

Что такое класс?

Прежде чем мы начнем, давайте поймем, что такое класс. Представьте класс как чертеж для создания объектов. Это как формочка для печенья, которая определяет форму и характеристики будущего печенья. В программировании класс определяет свойства и поведение объектов этого класса.

Определение класса

Давайте начнем с создания простого класса. Мы создадим класс Dog, потому что кто же не любит собак?

public class Dog
{
// Элементы класса здесь
}

Это базовая структура класса. Слово public означает, что этот класс может быть доступен из других частей вашей программы. В фигурных скобках {}, мы будем определять элементы класса.

Добавление свойств

Свойства – это характеристики нашей собаки. Давайте добавим несколько:

public class Dog
{
public string Name;
public int Age;
public string Breed;
}

Теперь наш класс Dog имеет имя, возраст и породу. Эти элементы называются полями или свойствами класса.

Члены класса и инкапсуляция

Члены класса (или методы) – это действия, которые может выполнять наша собака. Давайте добавим метод, чтобы наша собака лаяла:

public class Dog
{
public string Name;
public int Age;
public string Breed;

public void Bark()
{
Console.WriteLine("Woof! Woof!");
}
}

Метод Bark – это простое действие, которое выводит "Woof! Woof!" в консоль.

Инкапсуляция

Инкапсуляция – это как putting your dog's traits in a protective bubble. Это способ управления доступом к членам класса. Давайте изменим наш класс, чтобы использовать инкапсуляцию:

public class Dog
{
private string name;
private int age;
public string Breed { get; set; }

public string Name
{
get { return name; }
set { name = value; }
}

public int Age
{
get { return age; }
set
{
if (value > 0)
age = value;
}
}

public void Bark()
{
Console.WriteLine("Woof! Woof!");
}
}

Теперь name и age являются私有ными, и мы доступаем их через публичные свойства. Это позволяет нам добавлять логику, например, обеспечивать, чтобы возраст всегда был положительным.

Конструкторы C

Конструктор – это специальный метод, который вызывается при создании нового экземпляра класса. Это как prepare your dog when you first get it. Давайте добавим конструктор в наш класс Dog:

public class Dog
{
// ... предыдущий код ...

public Dog(string name, int age, string breed)
{
Name = name;
Age = age;
Breed = breed;
}
}

Теперь мы можем создать новую собаку так:

Dog myDog = new Dog("Buddy", 3, "Labrador");

Деструкторы C

Деструкторы – это методы, которые очищают ресурсы, когда объект больше не нужен. В C# они rarely used, потому что сборщик мусора управляет памятью. Но для полноты, вот как вы бы определили один:

public class Dog
{
// ... предыдущий код ...

~Dog()
{
Console.WriteLine("Goodbye, " + Name + "!");
}
}

Этот деструктор будет вызван, когда объект собаки разрушается сборщиком мусора.

Static члены класса C

Static члены принадлежат классу в целом, а не конкретному экземпляру. Они shared by all instances класса. Давайте добавим static член, чтобы отслеживать количество созданных собак:

public class Dog
{
// ... предыдущий код ...

public static int DogCount = 0;

public Dog(string name, int age, string breed)
{
Name = name;
Age = age;
Breed = breed;
DogCount++;
}

public static void ReportDogCount()
{
Console.WriteLine("Total number of dogs: " + DogCount);
}
}

Теперь каждый раз, когда мы создаем новую Dog, DogCount будет увеличиваться. Мы можем вызвать Dog.ReportDogCount() в любое время, чтобы увидеть, сколько собак мы создали.

Вся программа вместе

Давайте используем наш класс Dog в программе:

class Program
{
static void Main(string[] args)
{
Dog dog1 = new Dog("Buddy", 3, "Labrador");
Dog dog2 = new Dog("Max", 5, "German Shepherd");

Console.WriteLine(dog1.Name + " is a " + dog1.Breed);
dog1.Bark();

Console.WriteLine(dog2.Name + " is " + dog2.Age + " years old");
dog2.Bark();

Dog.ReportDogCount();
}
}

Эта программа создает две собаки, отображает их информацию, заставляет их лаять и сообщает общее количество созданных собак.

Заключение

Поздравляю! Вы только что узнали основы классов C#. Мы рассмотрели определение классов, добавление свойств и методов, использование конструкторов и деструкторов и даже коснулись static членов. Помните, что практика делает perfect, поэтому try creating your own classes и experiment with different properties and methods.

Вот таблица, резюмирующая основные методы, которые мы обсуждали:

Method Description
Constructor Initializes a new instance of the class
Destructor Cleans up resources when the object is destroyed
Bark() Makes the dog bark
ReportDogCount() Reports the total number of dogs created

Keep coding, and soon you'll be creating complex programs with ease. Happy learning!

Credits: Image by storyset