V Java metody definují chování tříd a objektů. Pochopení rozdílu mezi statickými metodami a metodami instance je zásadní pro psaní čistého a efektivního kódu.
řetězec na celé číslo v jazyce Java
Co je to statická metoda?
A statická metoda patří spíše do třídy než ke konkrétnímu objektu.
- Lze volat bez vytvoření instance třídy.
- Protože statické metody jsou specifické pro jakýkoli objekt, mají přístup pouze ke statickým členům (datům a metodám) a nemají přístup k nestatickým členům.
import java.io.*; class Geeks { // static method public static void greet() { System.out.println('Hello Geek!'); } public static void main(String[] args) { // calling the method directily greet(); // using the class name Geeks.greet(); } }
Výstup
Hello Geek! Hello Geek!
Vysvětlení: Výše uvedený příklad ukazuje statickou metodu greet() uvnitř třídy Geeks, statické metody lze volat bez vytvoření objektu. V hlavní metodě nevytváříme objekt třídy Geek, voláme metodu přímo jménem třídy, což je Geeks a poté tiskneme výstup.
Co je to metoda instance?
An Instanční metoda patří k objektu.
- Je třeba vytvořit instanci třídy, kterou chcete volat.
- Může přistupovat k proměnným instance, jiným metodám instance a statickým členům třídy.
- Mít přístup k
thisodkaz který ukazuje na aktuální objekt.
import java.io.*; class Test { String n = ''; // Instance method public void test(String n) { this.n = n; } } class Geeks { public static void main(String[] args) { // create an instance of the class Test t = new Test(); // calling an instance method in the class 'Geeks' t.test('GeeksforGeeks'); System.out.println(t.n); } }
Výstup
GeeksforGeeks
Vysvětlení: Výše uvedený příklad ukazuje, jak používat metodu instance v Javě. Vytváříme objekt třídy Test a voláme metodu test pro nastavení hodnoty a poté tiskneme výstup.
Rozdíl mezi statickou metodou a metodou instance
Následující tabulka uvádí hlavní rozdíly mezi statickými metodami a metodami instance v Javě.
Vlastnosti | Statická metoda | Instanční metoda |
|---|---|---|
Definice | Vytvořeno pomocí klíčového slova static a načteno bez vytvoření objektu. | Vyžaduje vyvolání objektu své třídy. |
Přístup | Přístup pouze ke statickým proměnným a metodám. | Má přístup ke statickým členům i členům instance. |
ahoj světe s javou | Nelze použít tento klíčové slovo v rámci statických metod. | Můžete použít klíčové slovo this k odkazování na aktuální objekt. |
Přepsat | Nepodporuje běhový polymorfismus | Podporuje runtime polymorfismus |
Alokace paměti lžička vs polévková lžíce | Načteno jednou za třídu | Každý objekt má svou vlastní kopii |