Statická vs. nestatická metoda
Metoda je řada příkazů, které se provádějí k provedení konkrétního úkolu. Metody mohou přijímat vstupy a vytvářet výstupy. Statické a nestatické metody jsou dva typy metod přítomných v objektově orientovaných programovacích jazycích. Statická metoda je metoda, která je přidružena ke třídě. Metoda, která je přidružena k objektu, se nazývá nestatická metoda (instance). V objektově orientovaných jazycích se metody používají jako mechanismus pro práci s daty, která jsou uložena v objektech.
Co je to statická metoda?
V objektově orientovaném programování je statická metoda metoda spojená s třídou. Proto statické metody nemají schopnost pracovat na konkrétní instanci třídy. Statické metody lze vyvolat bez použití objektu třídy, který obsahuje statickou metodu. Následuje příklad definování statické metody v Javě. Statický je třeba použít při definování statické metody v Javě.
veřejná třída MyClass {public static void MyStaticMethod () {// kód statické metody}
}
Statickou metodu definovanou výše lze volat následovně pomocí názvu třídy, do které patří.
MyClass. MyStaticMethod ();
Je důležité si uvědomit, že statické metody mají přístup pouze ke statickým členům.
Co je to nestatická metoda?
Nestatická metoda nebo metoda instance je metoda, která je přidružena k objektu ve třídě. Nestatické metody se proto nazývají pomocí objektu třídy, ve které je metoda definována. Nestatická metoda může přistupovat ke statickým členům i ke statickým členům třídy. V mnoha objektově orientovaných jazycích (například C ++, C #, Java) se při volání nestatické metody předá objekt, který tuto metodu vyvolal, jako implicitní argument (nazývá se to „tento“odkaz). Takže uvnitř metody lze toto klíčové slovo použít k označení objektu, který metodu nazval. Následuje příklad definování metody instance v Javě.
public class MyClass {public void MyInstanceMethod () {// kód metody instance}
}
Výše popsanou metodu instance lze volat takto pomocí objektu třídy, do které patří.
MyClass objMyClass = new MyClass ();
objMyClass. MyInstanceMethod ();
Jaký je rozdíl mezi statickou a nestatickou metodou?
Statické metody jsou metody, které jsou přidruženy ke třídě, zatímco nestatické metody jsou metody, které jsou přidruženy k objektům třídy. Aby bylo možné vyvolat nestatickou metodu, je třeba nejprve vytvořit instanci třídy, ale statické metody tento požadavek nemají. Lze je jednoduše vyvolat pomocí názvu třídy, která drží statickou metodu. Dalším důležitým rozdílem je, že nestatická metoda obvykle obsahuje odkaz na objekt, který metodu nazval, a lze k ní přistupovat pomocí klíčového slova this uvnitř metody. Toto klíčové slovo ale nelze použít ve statických metodách, protože nejsou spojeny s konkrétním objektem.