Java >> Java Tutorial >  >> Tag >> static

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

  1. Klasse - public class DifferenceBtwStaticVsNonStaticDemo {}
  2. Statische vs. nicht statische Variable – String demo = "Variable"; static String var = "Static Varibale";
  3. Instanz - DifferenceBtwStaticVsNonStaticDemo instance = new DifferenceBtwStaticVsNonStaticDemo(); . Wir werden diese Instanz verwenden, um IamNonStaticDemo anzurufen Methode.
  4. 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

Java-Tag