V Java metódy definujú správanie tried a objektov. Pochopenie rozdielu medzi statickými metódami a metódami inštancie je nevyhnutné pre písanie čistého a efektívneho kódu.
Čo je statická metóda?
A statická metóda patrí skôr do triedy než do akéhokoľvek konkrétneho objektu.
- Dá sa volať bez vytvorenia inštancie triedy.
- Keďže statické metódy sú špecifické pre akýkoľvek objekt, môžu pristupovať iba k statickým členom (údajom a metódam) a nemajú prístup k nestatickým členom.
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!
Vysvetlenie: Vyššie uvedený príklad ukazuje statickú metódu greet() v triede Geeks, statické metódy možno volať bez vytvorenia objektu. V hlavnej metóde nevytvárame objekt triedy Geek, metódu voláme priamo názvom triedy, ktorý je Geeks a následne vytlačíme výstup.
Čo je to metóda inštancie?
An Metóda inštancie patrí k objektu.
- Potrebujete vytvoriť inštanciu triedy, ktorú chcete volať.
- Má prístup k premenným inštancie, iným metódam inštancie a statickým členom triedy.
- Mať prístup k
thisodkaz ktorý ukazuje na aktuálny 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
Vysvetlenie: Vyššie uvedený príklad ukazuje, ako používať metódu inštancie v jazyku Java. Vytvárame objekt triedy Test a voláme metódu test na nastavenie hodnoty a potom tlačíme výstup.
cpld vs FPGA
Rozdiel medzi statickou metódou a inštanciou
Nasledujúca tabuľka uvádza hlavné rozdiely medzi statickými metódami a metódami inštancie v jazyku Java.
Vlastnosti | Statická metóda | Metóda inštancie koľko miest je v Spojených štátoch amerických |
|---|---|---|
Definícia | Vytvorené pomocou statického kľúčového slova a získané bez vytvorenia objektu. | Vyžaduje vyvolanie objektu svojej triedy. |
Prístup | Prístup iba k statickým premenným a metódam. | Má prístup k statickým členom aj členom inštancie. raní mukeri |
| Nedá sa použiť toto kľúčové slovo v rámci statických metód. | Môžete použiť kľúčové slovo this na odkazovanie na aktuálny objekt. rolovacie koliesko nefunguje |
Prepísať | Nepodporuje runtime polymorfizmus | Podporuje runtime polymorfizmus k algoritmu najbližšieho suseda |
Alokácia pamäte | Načítané raz za triedu | Každý objekt má svoju kópiu |