Sobes.tech
Back to questions
Junior — Middle
72

Чем отличается класс с статическими методами и полями от обычного класса с нестатическими?

Answer from AI

sobes.tech AI

Класс со статическими методами и полями отличается от обычного класса тем, что его члены принадлежат самому классу, а не конкретному объекту. Это означает:

  • Статические поля и методы доступны без создания экземпляра класса.
  • Они общие для всех пользователей класса — одно значение поля разделяется всеми.
  • Нельзя использовать ключевое слово this внутри статических методов, так как нет конкретного объекта.

Обычный класс с нестатическими членами требует создания объекта, и каждый объект имеет свои собственные значения полей.

Пример:

class Counter {
    public static int TotalCount = 0; // общее для всех
    public int InstanceCount = 0;     // для каждого объекта свой

    public void Increment() {
        InstanceCount++;
        TotalCount++;
    }
}

// Использование:
Counter c1 = new Counter();
c1.Increment();
Counter c2 = new Counter();
c2.Increment();

Console.WriteLine(Counter.TotalCount); // 2
Console.WriteLine(c1.InstanceCount);    // 1
Console.WriteLine(c2.InstanceCount);    // 1