Třídy a funkce

Jak jste si nejspíše všimli, v předchozích lekcích jsme používali třídy a funkce. V programování si můžeme tvořit vlastní funkce a třídy.

Co to jsou funkce?

Funkce je nějaký blok kódu, který dělá nějakou konkrétní věc. Můžeme si ji kdykoliv zavolat.

Příklad funkce

V minulosti jsme použili například funkci Console.WriteLine(), která nám umožňuje něco vypsat do konzole. Tato funkce nám přijímá nějaké informace, které té funkci přesně říkají, co se má do konzole vypsat. Tyto informace se nazývají parametry.

Toto je příklad funkce, do které hodíme číslo a ona nám do konzole vypíše text "Číslo je: " a za něj to číslo, které jsme do funkce hodili, ale o jedno větší.

using System;
class projekt {
    static void Main() {
        VypisCislo(7);
    }
    static void VypisCislo(int cislo)
    {
        Console.WriteLine("Číslo je: " + (cislo + 1));
    }
}

Když tento kód spustíme, do konzole nám vypíše "Číslo je: 8", protože jsme do funkce VypisCislo() vložili číslo 7 a ta funkce nám vypíše to číslo o jedno větší.

Třídy

Třída je něco podobného jako funkce, ale vrací nám nějakou hodnotu, kterou můžeme použít v našem programu.

Příklad třídy

V minulosti jsme využili například třídu Convert, která nám umožňuje převádět různé proměnné na jiné typy proměnných.

Toto je příklad třídy, do které vložíme dvě čísla a ona nám vrátí jejich součet.

using System;
class projekt {
    static void Main() {
        int soucet = SectiCisla(5, 7);
        Console.WriteLine(soucet);
    }
    static int SectiCisla(int cislo1, int cislo2)
    {
        return cislo1 + cislo2;
    }
}

K čemu nám funkce a třídy slouží?

Když píšeme nějaký rozsáhlý program, je dobré si ho rozdělit do menších částí, které dělají nějakou konkrétní věc. Když máme nějakou část kódu, která dělá nějakou konkrétní věc, můžeme ji dát do funkce nebo třídy a tu funkci nebo třídu pak kdykoliv zavolat, když tu konkrétní věc potřebujeme udělat.

Zároveň, když více programátorů dělá na jednom programu, tak každý programátor dělá nějakou konkrétní část. Například u kalkulačky by mohl být jeden programátor, který dělá funkce pro sčítání, druhý programátor dělá funkce pro odčítání, třetí programátor dělá funkce pro násobení a čtvrtý programátor dělá unkce pro dělení. Tímto způsobem se programátoři navzájem neruší a každý může pracovat na své části programu, aniž by musel řešit, co dělají ostatní programátoři.

Příklad kalkulačky, která využívá třídy pro sčítání, odčítání, násobení a dělení:

using System;
class projekt {
    static void Main() {
        Console.WriteLine("Zadej první číslo:");
        double cislo1 = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("Zadej druhé číslo:");
        double cislo2 = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("Zadej operaci (+, -, *, /):");
        string operace = Console.ReadLine();
        double vysledek = 0;
        if (operace == "+")
        {
            vysledek = SectiCisla(cislo1, cislo2);
        }
        else if (operace == "-")
        {
            vysledek = OdecistCisla(cislo1, cislo2);
        }
        else if (operace == "*")
        {
            vysledek = NasobitCisla(cislo1, cislo2);
        }
        else if (operace == "/")
        {
            vysledek = DelitCisla(cislo1, cislo2);
        }
        Console.WriteLine("Výsledek: " + vysledek);
    }
    static double SectiCisla(double cislo1, double cislo2)
    {
        return cislo1 + cislo2;
    }
    static double OdecistCisla(double cislo1, double cislo2)
    {
        return cislo1 - cislo2;
    }
    static double NasobitCisla(double cislo1, double cislo2)
    {
        return cislo1 * cislo2;
    }
    static double DelitCisla(double cislo1, double cislo2)
    {
        return cislo1 / cislo2;
    }
}