Metodo statico vs non statico
Un metodo è una serie di istruzioni eseguite per eseguire un compito specifico. I metodi possono prendere input e produrre output. I metodi statici e non statici sono due tipi di metodi presenti nei linguaggi di programmazione orientati agli oggetti. Un metodo statico è un metodo associato a una classe. Un metodo associato a un oggetto è chiamato metodo non statico (istanza). Nei linguaggi orientati agli oggetti, i metodi sono usati come meccanismo per operare sui dati che sono memorizzati negli oggetti.
Cos'è un metodo statico?
Nella programmazione orientata agli oggetti, il metodo statico è un metodo associato a una classe. Pertanto, i metodi statici non hanno la capacità di operare su una particolare istanza di una classe. I metodi statici possono essere invocati senza utilizzare un oggetto della classe che contiene il metodo statico. Di seguito è riportato un esempio di definizione di un metodo statico in Java. Lo static deve essere utilizzato quando si definisce un metodo statico in Java.
public class MyClass { public static void MyStaticMethod() { // codice del metodo statico }
}
Il metodo statico sopra definito può essere chiamato come segue usando il nome della classe a cui appartiene.
MyClass. MyStaticMethod();
Una cosa importante da notare è che i metodi statici possono accedere solo ai membri statici.
Cos'è un metodo non statico?
Un metodo non statico o un metodo di istanza è un metodo associato a un oggetto in una classe. Pertanto, i metodi non statici vengono chiamati utilizzando un oggetto della classe in cui è definito il metodo. Un metodo non statico può accedere a membri non statici e membri statici di una classe. In molti linguaggi orientati agli oggetti (come C++, C, Java), quando viene chiamato un metodo non statico, l'oggetto che ha invocato il metodo viene passato come argomento implicito (viene chiamato riferimento "questo"). Quindi, all'interno del metodo questa parola chiave può essere utilizzata per fare riferimento all'oggetto che ha chiamato il metodo. Di seguito è riportato un esempio di definizione di un metodo di istanza in Java.
public class MyClass { public void MyInstanceMethod() { // codice del metodo di istanza }
}
Il metodo di istanza sopra definito potrebbe essere chiamato come segue utilizzando un oggetto della classe a cui appartiene.
MyClass objMyClass=new MyClass();
objMyClass. MyInstanceMethod ();
Qual è la differenza tra il metodo statico e quello non statico?
I metodi statici sono metodi associati a una classe, mentre i metodi non statici sono metodi associati agli oggetti di una classe. Una classe deve essere prima istanziata per invocare un metodo non statico, ma i metodi statici non hanno questo requisito. Possono essere semplicemente invocati usando il nome della classe che contiene il metodo statico. Un' altra importante differenza è che un metodo non statico di solito possiede un riferimento all'oggetto che ha chiamato il metodo ed è possibile accedervi utilizzando la parola chiave this all'interno del metodo. Ma questa parola chiave non può essere utilizzata nei metodi statici poiché non sono associati a un particolare oggetto.