U Javi metode definiraju ponašanje klasa i objekata. Razumijevanje razlike između statičkih metoda i metoda instanci ključno je za pisanje čistog i učinkovitog koda.
sortirana tuple python
Što je statička metoda?
A statička metoda pripada klasi, a ne bilo kojem specifičnom objektu.
- Može se pozvati bez stvaranja instance klase.
- Budući da su statičke metode specifične za bilo koji objekt, mogu pristupiti samo statičkim članovima (podacima i metodama) i ne mogu pristupiti nestatičkim članovima.
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(); } }
Izlaz
Hello Geek! Hello Geek!
Obrazloženje: Gornji primjer pokazuje statičku metodu greet() unutar klase Geeks, statičke metode mogu se pozvati bez stvaranja objekta. U glavnoj metodi ne stvaramo objekt klase Geek, već metodu pozivamo izravno imenom klase koje je Geeks, a zatim ispisujemo izlaz.
Što je metoda instance?
An Metoda instance pripada objektu.
- Potrebno je stvoriti instancu klase za poziv.
- Može pristupiti varijablama instance drugim metodama instance i statičkim članovima klase.
- Imati pristup
thisreferenca koji pokazuje na trenutni 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); } }
Izlaz
GeeksforGeeks
Obrazloženje: Gornji primjer pokazuje kako koristiti metodu instance u Javi. Stvaramo objekt klase Test i pozivamo test metodu da postavimo vrijednost, a zatim ispisujemo izlaz.
Razlika između statičke metode i metode instance
Sljedeća tablica navodi glavne razlike između statičkih metoda i metoda instance u Javi.
Značajke | Statička metoda java liste | Metoda instance |
|---|---|---|
Definicija | Stvoreno pomoću ključne riječi static i dohvaćeno bez stvaranja objekta. | Zahtijeva da se pozove objekt njegove klase. |
Pristup | Pristup samo statičkim varijablama i metodama. apstraktna klasa vs sučelje | Može pristupiti i statičkim i instancnim članovima. |
| Ne može se koristiti ovaj ključna riječ unutar statičkih metoda. | Može koristiti ovu ključnu riječ za upućivanje na trenutni objekt. |
Nadjačavanje | Ne podržava polimorfizam vremena izvođenja | Podržava polimorfizam vremena izvođenja |
Dodjela memorije | Učitava se jednom po klasi | Svaki objekt ima svoju kopiju pronalaženje niza c++ |