Statická vs. nestatická metoda
Metoda je řada příkazů, které se provádějí k provedení konkrétního úkolu. Metody mohou brát vstupy a produkovat 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 spojena s třídou. Metoda, která je spojena s objektem, se nazývá nestatická (instance) metoda. V objektově orientovaných jazycích se metody používají jako mechanismus pro práci s daty uloženými v objektech.
Co je statická metoda?
V objektově orientovaném programování je statická metoda metoda, která je spojena s třídou. Statické metody proto 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ě. Statika musí být použita při definování statické metody v Javě.
veřejná třída MyClass public static void MyStaticMethod () // kód statické metodyVýše definovaná statická metoda může být nazvána pomocí názvu třídy, do které patří.
MyClass.MyStaticMethod ();
Důležitou věcí je, že statické metody mají přístup pouze k statickým členům.
Co je nestatická metoda?
Nestabilní metoda nebo metoda instance je metoda, která je spojena s objektem ve třídě. Proto jsou nestatické metody volány pomocí objektu třídy, ve které je metoda definována. Nestatická metoda může přistupovat k statickým členům i statickým členům třídy. V mnoha objektově orientovaných jazycích (např. C ++, C #, Java), když se volá nestatická metoda, je objekt, který tuto metodu vyvolal, předán jako implicitní argument (nazývá se „tato“ reference). V rámci metody lze toto klíčové slovo použít k odkazu na objekt, který tuto metodu nazýval. Následuje příklad definice metody instance v Javě.
veřejná třída MyClass veřejné neplatné MyInstanceMethod () // kód metody instance
Metoda instance definovaná výše může být volána následovně 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 spojeny s třídou, zatímco nestatické metody jsou metody, které jsou spojeny s objekty třídy. Třída musí být nejprve vyvolána, aby vyvolala nestatickou metodu, ale statické metody tento požadavek nemají. Lze je jednoduše vyvolat pomocí názvu třídy, která obsahuje statickou metodu. Dalším důležitým rozdílem je to, že nestatická metoda obvykle obsahuje odkaz na objekt, který metodu nazývala, a lze k ní přistupovat pomocí tohoto klíčového slova uvnitř metody. Toto klíčové slovo však nelze použít ve statických metodách, protože nejsou spojeny s konkrétním objektem.