Sobes.tech
Junior — Middle

У чему се састоји разлика између нестатичне и статичне класе у програмирању?

sobes.tech АИ

Одговор од АИ

U programiranju, statička klasa je klasa koja se ne može instancirati i sadrži samo statičke članove (metode, svojstva). Koristi se za grupisanje funkcija i podataka koji nisu zavisni od konkretnog objekta.

Nestatička klasa je obična klasa, čije instance mogu biti kreirane. Može sadržavati i statičke i nestatičke članove, a stanje svakog objekta se čuva odvojeno.

Glavne razlike:

  • Kreiranje instanci:

    • Statička klasa se ne može kreirati (poziv new StaticClass() izazvaće grešku).
    • Nestatička klasa može kreirati i koristiti objekte.
  • Članovi klase:

    • U statičkoj klasi, svi članovi moraju biti statički.
    • U nestatičkoj klasi, mogu biti i statički i nestatički članovi.
  • Korišćenje:

    • Statička klasa je pogodna za pomoćne funkcije koje ne zahtevaju stanje.
    • Nestatička klasa se koristi kada je potrebno čuvati stanje i ponašanje objekata.

Primer statičke klase u C#:

public static class MathUtils
{
    public static int Add(int a, int b) => a + b;
}

// Korišćenje:
int sum = MathUtils.Add(3, 4);

Primer nestatičke klase:

public class Person
{
    public string Name { get; set; }

    public void SayHello()
    {
        Console.WriteLine($"Zdravo, moje ime je {Name}");
    }
}

// Korišćenje:
Person p = new Person { Name = "Alice" };
p.SayHello();