Differenza tra metodo statico e metodo non statico

Metodo statico o non statico

Un metodo è una serie di istruzioni che vengono eseguite per eseguire un'attività specifica. 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 vengono utilizzati come meccanismo per operare sui dati 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 richiamati 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 statico deve essere usato quando si definisce un metodo statico in Java.

classe pubblica MyClass vuoto statico pubblico MyStaticMethod () // codice del metodo statico

Il metodo statico definito sopra potrebbe 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.

Che 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 sono chiamati usando 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 il riferimento "this"). 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.

classe pubblica MyClass public void MyInstanceMethod () // codice del metodo di istanza

Il metodo di istanza definito sopra potrebbe essere chiamato come segue usando un oggetto della classe a cui appartiene.

MyClass objMyClass = new MyClass ();

objMyClass.MyInstanceMethod ();

Qual è la differenza tra metodo statico e metodo non statico?

I metodi statici sono metodi associati a una classe, mentre i metodi non statici sono metodi associati agli oggetti di una classe. È necessario prima istanziare una classe per richiamare un metodo non statico, ma i metodi statici non hanno questo requisito. Possono essere semplicemente richiamati usando il nome della classe che detiene il metodo statico. Un'altra importante differenza è che un metodo non statico di solito possiede un riferimento all'oggetto che ha chiamato il metodo e può essere utilizzato utilizzando questa parola chiave all'interno del metodo. Ma questa parola chiave non può essere utilizzata in metodi statici poiché non sono associati a un particolare oggetto.