Sobes.tech
Junior

Jaký je rozdíl mezi statickou metodou a metodou instance?

sobes.tech AI

Odpověď od AI

Statická metoda patří ke třídě a volá se bez vytvoření instance objektu. Metoda instance patří k instanci třídy a volá se přes vytvořený objekt.

Hlavní rozdíly:

Kritérium Statická metoda Metoda instance
Příslušnost Ke třídě K instanci třídy
Volání Přes název třídy Přes objekt instance
Přístup k datům Pouze ke statickým členům třídy Ke statickým členům a datům instance
Klíčové slovo static Chybí (výchozí)
using System;

public class MyClass
{
    // Statické pole
    public static string StaticData = "This is static data";

    // Pole instance
    public string InstanceData = "This is instance data";

    // Statická metoda
    public static void StaticMethod()
    {
        Console.WriteLine("Volána statická metoda.");
        Console.WriteLine(StaticData); // Přístup ke statickému poli
        // Console.WriteLine(InstanceData); // Chyba: nelze přistoupit k poli instance
    }

    // Metoda instance
    public void InstanceMethod()
    {
        Console.WriteLine("Volána metoda instance.");
        Console.WriteLine(StaticData); // Přístup ke statickému poli
        Console.WriteLine(InstanceData); // Přístup k poli instance
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Volání statické metody přes název třídy
        MyClass.StaticMethod();

        // Vytvoření instance třídy
        MyClass myObject = new MyClass();

        // Volání metody instance přes objekt
        myObject.InstanceMethod();
    }
}