Java ist eine objektorientierte Programmiersprache (OOP). Wir müssen Objekte erstellen, um auf Methoden und Variablen innerhalb einer Klasse zuzugreifen. Dies ist jedoch nicht immer der Fall. Bei der Erörterung statischer Schlüsselwörter in Java haben wir gelernt, dass statische Member auf Klassenebene sind und direkt ohne Instanz zugegriffen werden kann. Hier werden wir besprechen, wie wir auf nicht statische Datenelemente zugreifen können, ohne den Objektnamen zu verwenden, für den wir statische Datenelemente und nicht statische Datenelemente vergleichen können, die in der folgenden Tabelle wie folgt angegeben sind:

Statische DatenmemberNicht statische Datenelemente
Sie werden mit dem Schlüsselwort 'static' deklariert.Jedes Mitglied in Java ist standardmäßig nicht statisch, ohne dass ihm ein Schlüsselwort „statisch“ vorangestellt ist.
Alle Objekte einer Klasse teilen sich dieselbe Kopie statischer Datenelemente.Jedes Objekt der Klasse erhält seine eigene Kopie von nicht statischen Datenelementen.
Auf sie kann über den Klassennamen oder das Objekt zugegriffen werden.Auf sie wird im Allgemeinen über ein Objekt der Klasse zugegriffen.
Statische Methoden können ohne die Instanz oder das Objekt dieser Klasse aufgerufen werden. Nicht statische Methoden können auf jede statische Methode und statische Variable zugreifen, ohne eine Instanz des Objekts zu erstellen.

Beispiel 1: Aufrufen von statischen Datenelementen ohne die Instanz oder das Objekt dieser Klasse. 

Java

// Java program Illustrating Calling Static Data Members
// Without the Instance or object of that class
 
// Main class
public class GFG {
 
    // Static variable
    static int a = 5;
 
    // Method 1
    // Static method
    static void f()
    {
        // Print statement whenever static method is called
        System.out.println("I am static method");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Calling static data members without the
        // instance or object of that class.
        System.out.println(GFG.a);
 
        // Calling method 1
        GFG.f();
    }
}

 
 

Ausgabe
5
Ich bin statische Methode

Beispiel 2: Aufrufen von nicht statischen Datenelementen.

Java

// Java Program Illustrating Calling Non-static Data Members
 
// Main class
public class GFG {
 
    // Non-static variable
    int a = 5;
 
    // Method 1
    // Non-static method
    void f()
    {
 
        // Print statement whenever non static method is
        // called
        System.out.println("I am Non-static method");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Creating object of class inside main()
        GFG obj = new GFG();
 
        System.out.println(obj.a);
        // Calling non static data members
        obj.f();
    }
}

 
 

Ausgabe
5
Ich bin nicht-statische Methode

Beispiel 3: Direktes Aufrufen von nicht statischen Datenelementen ohne Verwendung von Objektnamen.

Java

// Java program Illustrating Calling Non-static Method
// Without using Object Name
 
// Main class
class GFG {
 
    // Calling non-static method
    // through constructor
    GFG()
    {
        int a = 5;
        System.out.println(a);
        display();
    }
 
    // Method 1
    // Non static method
    void display()
    {
 
        // Print statement whenever non-static method is
        // called
        System.out.println(
            "Non static method is called using constructor.");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] a) { new GFG(); }
}

 
 

Ausgabe
5
Eine nicht statische Methode wird mit dem Konstruktor aufgerufen.