Sobes.tech
Junior
119
questionbank

В чём заключается разница между статическими и нестатическими классами?

Answer from AI

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); // Доступ к статическому члену через имя класса