En Java, els mètodes defineixen el comportament de les classes i els objectes. Comprendre la diferència entre els mètodes estàtics i els mètodes d'instància és essencial per escriure codi net i eficient.
Què és un mètode estàtic?
A mètode estàtic pertany a la classe en lloc de qualsevol objecte específic.
- Es pot cridar sense crear una instància de la classe.
- Com que els mètodes estàtics són específics de qualsevol objecte, només poden accedir als membres estàtics (dades i mètodes) i no poden accedir als membres no estàtics.
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(); } }
Sortida
Hello Geek! Hello Geek!
Explicació: L'exemple anterior mostra un mètode estàtic greet() dins de la classe Geeks. Els mètodes estàtics es poden cridar sense crear un objecte. En el mètode principal no estem creant un objecte de la classe Geek, estem cridant el mètode directament pel nom de classe que és Geeks i després estem imprimint la sortida.
Què és un mètode d'instància?
An Mètode d'instància pertany a un objecte.
- Cal crear una instància de la classe per trucar.
- Pot accedir a variables d'instància altres mètodes d'instància i membres estàtics de la classe.
- Tenir accés a
thisreferència que apunta a l'objecte actual.
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); } }
Sortida
GeeksforGeeks
Explicació: L'exemple anterior mostra com utilitzar un mètode d'instància a Java. Estem creant un objecte de la classe Test i cridant al mètode de prova per establir un valor i després estem imprimint la sortida.
Diferència entre el mètode estàtic i el mètode d'instància
La taula següent enumera els diferències importants entre els mètodes estàtics i els mètodes d'instància a Java.
listnode java
Característiques | Mètode estàtic | Mètode d'instància |
|---|---|---|
Definició | Creat amb la paraula clau estàtica i recuperat sense crear cap objecte. centos vs redhat | Requereix que s'invoqui un objecte de la seva classe. |
Accés | Accedeix només a variables i mètodes estàtics. | Pot accedir tant a membres estàtics com a membres d'instància. |
| No es pot utilitzar el això paraula clau dins dels mètodes estàtics. pitó camelcase | Pot utilitzar la paraula clau this per referir-se a l'objecte actual. |
Anul·lació | No admet polimorfisme en temps d'execució | Admet polimorfisme en temps d'execució |
Assignació de memòria | Es carrega una vegada per classe | Cada objecte té la seva pròpia còpia substitució de js |