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();
}
}