6. Metody

6.1. Statické metody

Volání v případě statické metody představuje zprávu odeslání celé třídě, a ne konkrétní instanci. I to je občas zapotřebí např. při vytvoření nového objektu, kolik bylo již vytvořeno instancí třídy apod.


Ilustrativní příklad TridaStatickaMetoda
Program TridaStatickaMetoda
  • Popis: Deklarace nestatické třídy, deklarace statické metody uvnitř této třídy
  • Zadání: Deklarujte nestatickou třídu Trida, která bude obsahovat hlavní metodu Main ve které budete volat statickou metodu StatickaMetoda. StatickaMetoda bude pouze obsahovat výpis textu "Nyní probíhá statická metoda ve stejné třídě"
  • Řešení: Bude postupně probráno v následujícím textu


Volání statické metody z jiné metody v rámci téže třídy není zapotřebí uvádět třídu. V následujícím kódu vidíme, volání statické metody z hlavní statické metody Main nestatické třídy – viz Kód1. Takto jsme volali statické metody, které jsme doposud vytvářeli.

//Deklarace třídy
class Trida
{
    //Deklarace soukromé statické metody třídy
    static void StatickaMetoda()
    {
        Console.Write("Nyní probíhá statická metoda ve stejné třídě");
    }
 
    static void Main(string[] args)
    {
        //Volání statické metody v rámci stejné třídy
        StatickaMetoda();
        //Čekání na stisk klávesy -> ukončení programu
        Console.ReadKey();
    }
}

Kód 1: Příklad volání statické metody ve stejné nestatické třídě

Na výpisu v konzoli vidíme, že proběhlo volání statické metody v rámci stejné nestatické třídy – viz Výstup programu - Kód 1.

Nyní probíhá statická metoda ve stejné třídě

Výstup programu - Kód 1: Ukázka výsledku volání statické metody ve stejné nestatické třídě


Ilustrativní příklad StatickaMetodaJinaTrida
Program StatickaMetodaJinaTrida
  • Popis: Deklarace jiné nestatické třídy, deklarace statických metod, volání statické metody jiné nestatické třídy
  • Zadání: Deklarujte dvě nestatické třídy Trida a JinaTrida. Trida bude obsahovat hlavní metodu Main, ve které budete volat statickou metodu StatickaMetoda. StatickaMetoda bude pouze obsahovat výpis textu "Nyní probíhá statická metoda ve stejné třídě"
  • Řešení: Bude postupně probráno v následujícím textu


Pokud bychom ale volali metodu jiné třídy, třídu volané metody musíme uvést – viz Kód 2.

namespace StatickaMetodaJinaTrida
{
    //Deklarace nestatické třídy
    class Trida
    {
        static void Main(string[] args)
        {
            //Volání statické metody z jiné třídy
            JinaTrida.StatickaMetoda();
            //Čekání na stisk klávesy -> ukončení programu
            Console.ReadKey();
        }
    }
 
 
    //Deklarace jiné nestatické třídy
    class JinaTrida
    {
        //Deklarace soukromé statické metody jiné třídy
        public static void StatickaMetoda()
        {
            Console.WriteLine("Nyní probíhá statická metoda v jiné třídě");
        }
    }
}

Kód 2: Příklad volání statické metody jiné nestatické třídy v metodě Main implementované uvnitř nestatické třídy

Na výpisu v konzoli vidíme, že proběhlo volání metody z jiné třídy – viz Výstup programu - Kód 2.

Nyní probíhá statická metoda v jiné třídě

Výstup programu - Kód 2: Ukázka výsledku volání statické metody jiné nestatické třídy