Showing posts with label konstruktori i promenjive u C# programskom jeziku. Show all posts
Showing posts with label konstruktori i promenjive u C# programskom jeziku. Show all posts

Monday, February 08, 2016

Statičke klase, metode, konstruktori i promenjive u C# programskom jeziku



Kao što bi to Microsoft programeri rekli, statička klasa vam je u osnovi isto što i klasa koja nije statička ali sa tom razlikom što se statička klasa ne može instancirati. Drugim rečima, ne možete koristiti ključnu reč new za stvaranje promenjive tipa klase. Prva stvar koju treba da znate o statičkim klasama je da ih nikad ne pravite iako samo pretpostavljate da će se klasa nasleđivati. Statičke klase ne možete nasleđivati i jednostavno se podrazumeva da je svaka statička klasa i sealed klasa i bez korišćenja ključne reči sealed. Znači statičku klasu pravite samo ako ste sigurni da se nikad klasa koju pravite neće nasleđivati.  


( Statički članovi štede memoriju prilikom svake inicijalizacije klase )


Statičke klase se jednostavno prave umetanjem ključne reči static ispred ključne reči class prilikom pravljenja klase, ali i svaka statična klasa mora da sadrži samo statičke članove. U Visual Basic-u se umesto static koristi ključna reč Shared i često će te čuti Visual Basic programere da statičku klasu zovu deljena klasa ili statičku metodu zovu deljena metoda, što statičke klase i jesu. Samo to nemojte da mešate sa partial klasama koje dele klasu u više fajlova. Kad kažu za statičku klase da je deljena klasa misli se na deljene memorijski resursa jer statički članovi štede memoriju. Pogledajte inicijalizaciju klase koja nije statična kroz objekat klase.

Rectangle rectangle = new Rectangle();
WriteLine(rectangle.CalculateArea(5, 7));
WriteLine(rectangle.CalculateArea(8, 9));

Vi pozivate metodu CalculateArea preko objekta. Međutim dovoljno je samo metodu napraviti statičnu i jednostavno je pozivate preko klase.

Rectangle rectangle = new Rectangle();
WriteLine(Rectangle.CalculateArea(5, 7));
WriteLine(Rectangle.CalculateArea(8, 9));

Ukoliko je klasa statična, onda ne morate ni praviti inicijalizaciju objekta.

WriteLine(Rectangle.CalculateArea(5, 7));
WriteLine(Rectangle.CalculateArea(8, 9));

Ako imenujete namespace kao statičan, npr:

using static StaticClass.Rectangle; // StaticClass je ime programa

Tada možete pisati još kraće kod.

WriteLine(CalculateArea(5, 7));
WriteLine(CalculateArea(8, 9));

Razumevanje statičkog konstruktora