Základ C# 9 – Triedy a Modifikátory [Classes and Modificators]

V minulej časti sme si povedali, ako sa vytvárajú objekty, dnes si ukážeme, ako napísať vlastnú triedu a povieme si niečo o modifikátoroch, ktoré ovplyvňujú funkčnosť programu.

Triedy sú šablónami pre objekty, ktoré v sebe kombinujú premenné, funkcie, vlastnosti alebo aj iné objekty.

Ako napísať triedu

Triedu napísať samú o sebe nieje problém. Slúži na to slovíčko class, ktorým definujeme, že sa chystáme vytvoriť triedu a následne napíšeme jej názov a začneme blok kódu.

class NovaTrieda
{
}

Takto vytvorenú triedu je možné použiť. Zaujímavé je, že trieda sa môže nachádzať aj vnútri inej triedy a viacero tried môže byť v jednom súbore. Je však zvykom, že každá trieda má svoj vlastný súbor. Triedy, ktoré sa nachádzajú v iných triedach sú používané väčšinou len v spojitosti s nimi. Vytvorenie novej triedy v prostredí Visual Studio 2019 je zachytené na nasledujúcom videu.

Premenné

Do takto vytvorenej triedy môžete pridávať vlastné premenné. Je však nutné dbať na modifikátory.

class NovaTrieda
{
   int test1 = 1;
   private int test2 = 2;
   public int test3 = 3;
}

Keď v triede vytvoríte premennú a nešpecifikujete modifikátor, je automatický použitý modifikátor private, čo znamená, že táto premenná môže byť prístupná len z triedy, kde bola vytvorená. Tieto modifikátory je možné priradiť aj triede samotnej a spraviť ju tak prístupnou alebo neprístupnou.

Konštruktor

Pridanie konštruktora je nepovinná, ale užitočná časť tvorby triedy. Pokiaľ žiadny konštruktor nenapíšete, kompilátor vygeneruje prázdny.

Konštruktor je praktický len metóda, ktorá je zavolaná po vytvorení inštancie, no nemá žiadny návratový typ. Konštruktor musí mať rovnaké meno ako trieda.

class NovaTrieda
{
    public NovaTrieda()
    {
        Console.WriteLine("Inštancia NovejTriedy vytvorená!");
    }
}

Toto je jednoduchý konštruktor bez parametrov, ktorý po vytvorení inštancie objektu triedy NovaTrieda napíše do konzoli text.

Modifikátory const, readonly a slovo this

Modifikátor const zabezpečuje nemennú hodnotu premennej a robí s nej konštantu. Takto vytvorená premenná musí byť inicializovaná pri definícií a nieje možné jej hodnotu ďalej upravovať. Modifikátor readonly tiež nadstavuje nemennú hodnotu premennej, jej hodnota je však upraviteľná v konštruktore triedy. Prístup k premenným triedy, v ktorej sme je možný pomocou slova this – to označuje inštanciu objektu v ktorom práve sme. Toto slovo však nieje povinné a nemusíte ho použiť, keď nemáte premennú rovnakého názvu vnútri funkcie.

class NovaTrieda
{
   public readonly int Pozicia;

   public NovaTrieda(int Pozicia)
   {
      this.Pozicia = Pozicia;
   }
}

V tomto kóde má konštruktor ako parameter premennú Pozicia. Toto meno však už má premenná v triede a tak ju tento parameter prekrýva. Je teda možné k pôvodnej premennej triedy pristupovať cez slovo this. Tu sme pomocou kódu  this.Pozicia = Pozicia; priradili hodnotu premennej Pozicia, ktorá je parametrom konštruktora premennej Pozicia, ktorá sa nachádza v triede.

Metódy a modifikátory public, private

To, že modifikátor public a private rozlišuje, či je premenná verejná, alebo súkromná sme si povedali, čo to však znamená? To si ukážeme, ale najprv je dôležité vedieť, že tieto modifikátory sa priraďujú aj metódam vnútri funkcie, ktoré majú tiež v základe nadstavený modifikátor private.

V prípade, že chceme pristupovať k akémukoľvek členovi vnútri inej triedy, musí tento člen byť verejný.

class Program
{
   static void Main(string[] args)
   {
      NovaTrieda trieda = new NovaTrieda();
      Console.WriteLine(trieda.Hodnota); //spôsobý chybu - premenná Hodnota je označená ako súkromná
      Console.WriteLine(trieda.ZiskajHodnotu()); //Bude fungovať - funkcia ZiskajHodnotu je verejná
   }
}

class NovaTrieda
{
   private int Hodnota = 0;

   public int ZiskajHodnotu()
   {
      return Hodnota;
   }
}

Na tomto príklade je jasne vidno, že k súkromnej hodnote nemôžme pristupovať zvonku triedy, ale k verejným áno. Taktiež k súkromným premenným  je možné pristupovať zvnútra funkcie.

Modifikátor static

Posledný modifikátor je static. Slúži na tvorbu statických tried, premenných alebo metód. Statické metódy a premenné sa môžu nachádzať len v statických triedach a majú prístup len k statickým premenným alebo metódam. Na prístup k nim nieje potrebné vytvoriť objekt a sú rovnako prístupné z každého miesta. Vďaka tomu sú vhodné miesto na uloženie globálnych premenných. Prístupnosť a funkčnosť statických premenných je vidno na nasledujúcom príklade.

class Program
{
   static void Main(string[] args)
   {
      Console.WriteLine(NovaTrieda.cislo1); //Prístupné - cislo1 je statické - má hodnotu 3
      Console.WriteLine(NovaTrieda.cislo3); //Neprístupné - cislo2 nieje statické a na prístup vyžaduje vytvorený objekt
      Trieda2 trieda = new Trieda2();
      trieda.ZvacCislo();
      Console.WriteLine(NovaTrieda.cislo1); //Zobrazi cislo 5.
   }
}

class Trieda2
{
   public void ZvacCislo()
   {
      cislo1 += 2;
   }
}

static class NovaTrieda
{
   public static int cislo1 = 3;
   public int cislo2 = 5;
}

Akýkoľvek statický objekt patrí triede samotnej a nie vytvorením inštanciám. Pokiaľ ho upravíte v jednej triede, a použijete v inej, hodnota bude upravená.

Týmto dielom sme prebrali najdôležitejšie časti C# a tak to odteraz bude už len jednoduchšie. Nabudúce sa pozrieme na štruktúry, ktoré sú veľmi podobné triedam.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená.

Scroll to Top