Junior
120
questionbank
В чём заключается разница между статическими и нестатическими классами?
Ответ от нейросети
sobes.tech AI
Статические классы нельзя создать с помощью оператора new. Они содержат только статические члены (поля, свойства, методы), которые доступны через имя самого класса, а не экземпляр. Нестатические классы можно инстанцировать, создавая объекты (экземпляры класса). Они могут содержать как статические, так и нестатические члены. Нестатические члены доступны через экземпляр класса.
| Аспект | Статический класс | Нестатический класс |
|---|---|---|
| Создание | Нельзя создать экземпляры (new) |
Можно создать экземпляры (new) |
| Экземпляры | Нет | Есть |
| Члены класса | Только статические | Статические и нестатические |
| Доступ к членам | Через имя класса | Статические через имя класса, нестатические через экземпляр |
| Наследование | Не может быть базовым или производным | Может быть базовым или производным |
Пример статического класса:
public static class Utility
{
public static int Add(int a, int b)
{
return a + b;
}
}
Пример нестатического класса:
public class Calculator
{
public int Value { get; set; }
public int Multiply(int a, int b)
{
return a * b;
}
public static int Subtract(int a, int b)
{
return a - b;
}
}
Использование:
// Использование статического класса
int sum = Utility.Add(5, 3);
// Использование нестатического класса
Calculator calc = new Calculator();
calc.Value = 10;
int product = calc.Multiply(4, 6);
int difference = Calculator.Subtract(10, 2); // Доступ к статическому члену через имя класса