În Java, metodele definesc comportamentul claselor și obiectelor. Înțelegerea diferenței dintre metodele statice și metodele de instanță este esențială pentru scrierea unui cod curat și eficient.
Ce este o metodă statică?
O metoda statica aparține clasei mai degrabă decât oricărui obiect specific.
- Poate fi apelat fără a crea o instanță a clasei.
- Deoarece metodele statice sunt specifice oricărui obiect, acestea pot accesa numai membri statici (date și metode) și nu pot accesa membrii nestatici.
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(); } }
Ieșire
Hello Geek! Hello Geek!
Explicaţie: Exemplul de mai sus arată o metodă statică greet() în cadrul clasei Geeks. Metodele statice pot fi apelate fără a crea un obiect. În metoda principală, nu creăm un obiect al clasei Geek, apelăm metoda direct după numele clasei care este Geeks și apoi tipărim rezultatul.
Ce este o metodă de instanță?
Un Metoda de instanță aparține unui obiect.
- Trebuie să creați o instanță a clasei de apelat.
- Poate accesa variabile de instanță și alte metode de instanță și membri statici ai clasei.
- Au acces la
thisreferinţă care indică obiectul curent.
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); } }
Ieșire
GeeksforGeeks
Explicaţie: Exemplul de mai sus arată cum să utilizați o metodă de instanță în Java. Creăm un obiect din clasa Test și apelăm metoda de testare pentru a seta o valoare și apoi tipărim rezultatul.
arahide vs arahide
Diferența dintre metoda statică și metoda instanței
Următorul tabel listează diferențe majore între metodele statice și metodele de instanță în Java.
Caracteristici | Metoda statica | Metoda de instanță șir în metodele java |
|---|---|---|
Definiţie | Creat folosind cuvântul cheie static și preluat fără a crea un obiect. | Necesită invocarea unui obiect din clasa sa. |
Acces | Accesați numai variabile și metode statice. | Poate accesa atât membri statici, cât și membri de instanță. round matematică java |
| Nu se poate folosi acest cuvânt cheie în cadrul metodelor statice. | Poate folosi cuvântul cheie this pentru a face referire la obiectul curent. comisie de selecție a personalului sens |
Suprascriere | Nu acceptă polimorfismul runtime | Suportă polimorfismul de rulare încercați catch catch java |
Alocarea memoriei | Încărcat o dată pe clasă | Fiecare obiect are propria sa copie |