Junior — Middle
Quelle est la différence entre une classe avec des méthodes et des champs statiques et une classe normale avec des méthodes et des champs non statiques?
sobes.tech IA
Réponse de l'IA
Класс со статическими методами и полями отличается от обычного класса тем, что его члены принадлежат самому классу, а не конкретному объекту. Это означает:
- Статические поля и методы доступны без создания экземпляра класса.
- Они общие для всех пользователей класса — одно значение поля разделяется всеми.
- Нельзя использовать ключевое слово
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