Unterschied zwischen statischen und nicht statischen Methoden in Java
Statische und nichtstatische Methoden sind elementar zu verstehen. Dieser Artikel behandelt ihre Attribute, den logischen Ablauf und die allgemeine Implementierung.
Zunächst führen wir ein Beispiel für die statische Methode aus. dann zeigen wir eine einfache Demo auf non-static. Schließlich werden wir beide in einer Tabelle klassifizieren und beide in einem einzigen Codeblock verwenden.
Statische Methode in Java
In Java static
ist ein bestimmtes reserviertes Schlüsselwort, das es einer Methode ermöglicht, ohne eine Klasseninstanz zu funktionieren.
Seit static
-Methode Teil der Klasse ist, müssen wir keine Instanz erstellen. Kommen wir direkt zum Punkt; Sehen Sie sich den Code unten an.
Code:
//This demo shows how you can use static methods!
public class StaticMethodDemo {
// We define static keyword to use static method
static void demoStaticMethod() {
System.out.println("We can call static methods without having to create their objects");
}
// Function
public static void main(String[] args) {
demoStaticMethod(); // This calls our static method
}
}
Ausgabe:
We can call static methods without having to create their objects
Nicht statische Methode in Java
Die static
Das Schlüsselwort ist nicht erforderlich, um eine nicht statische Methode oder Variable zu benennen. Es entspricht auch einem Klassenobjekt; Daher müssen Sie eine Instanz der Klasse erstellen, um Zugriff darauf zu erhalten.
Code:
class NonStaticMethodDemo
{
public void NonStaticDemo()
{
System.out.println("This is a demonstration of a Non Static Method in Java");
}
public static void main(String agrs[])
{
NonStaticMethodDemo NonSM=new NonStaticMethodDemo();
NonSM.NonStaticDemo();
}
}
Ausgabe:
This is a demonstration of a Non Static Method in Java
Wir müssen das Objekt nicht mit static
aufrufen Methode im vorherigen Beispiel.
Im Gegensatz dazu können Sie eine nicht statische Methode nicht direkt aufrufen. Es wird einen Kompilierungsfehler auslösen.
Überprüfen Sie den Unterschied im folgenden Beispiel.
Unterschied zwischen statischen und nichtstatischen Methoden in Java
Statische Methoden benötigen keine Instanzvariable; Andernfalls erhalten Sie einen Kompilierungsfehler. Im Gegensatz dazu können Sie nicht-statische Methoden mit der Instanzvariable aufrufen.
Differenztabelle:
Attribute | Statisch | Nicht statisch |
---|---|---|
Barrierefreiheit | Nur auf statische Methoden zugreifen | Es kann auf beide zugreifen |
Erklärung | Wir deklarieren es mit static Nur Schlüsselwort | Kein spezielles Schlüsselwort erforderlich |
Speicher | Weniger Speicher (Speicherzuweisung erfolgt einmal) | Mehr Arbeitsspeicher |
Bindung | Verwendet Bindung zur Kompilierzeit | Laufzeitbindung/Dynamische Bindung |
Syntax | static void DemoStatic() {} | void IamNonStaticDemo() {} |
Implementierungsschritte für einen Code mit statischen und nichtstatischen Methoden in Java
- Klasse -
public class DifferenceBtwStaticVsNonStaticDemo {}
- Statische vs. nicht statische Variable –
String demo = "Variable";
static String var = "Static Varibale";
- Instanz -
DifferenceBtwStaticVsNonStaticDemo instance = new DifferenceBtwStaticVsNonStaticDemo();
. Wir werden diese Instanz verwenden, umIamNonStaticDemo
anzurufen Methode. - Statische Methode benötigt keine Instanz -
DifferenceBtwStaticVsNonStaticDemo.DemoStatic();
Überprüfen Sie nun das folgende Programm.
Code:
public class DifferenceBtwStaticVsNonStaticDemo { //main class
//we will call these variables in both methods
String demo = "Variable";
static String var = "Static Variable";
//main function
public static void main (String[] args) {
//Your code goes here
//Creating Instance of the main class
DifferenceBtwStaticVsNonStaticDemo instance = new DifferenceBtwStaticVsNonStaticDemo();
//instance will call a non static method
instance.IamNonStaticDemo();
//Static methods do not need instance variables
DifferenceBtwStaticVsNonStaticDemo.DemoStatic();
}
//This is static method
static void DemoStatic() {
System.out.println("Static Method:::::" + var);// static variable for static method
}
//This is non static method
void IamNonStaticDemo() {
System.out.println("Non Static Method:::::" + demo +" I can also access:::: " + var); //Since it is a non static method, it can access both string variables
}
} //main class
Ausgabe:
Non Static Method:::::Variable I can also access:::: Static Variable
Static Method:::::Static Variable