Sobes.tech
Junior

Was ist der Unterschied zwischen einer statischen Methode und einer Instanzmethode?

sobes.tech KI

Antwort von AI

Eine statische Methode gehört zur Klasse und wird aufgerufen, ohne eine Instanz des Objekts zu erstellen. Die Instanzmethode gehört zu einer Instanz der Klasse und wird über das erstellte Objekt aufgerufen.

Hauptunterschiede:

Kriterium Statische Methode Instanzmethode
Zugehörigkeit Zur Klasse Zur Instanz der Klasse
Aufruf Über den Klassennamen Über das Objekt der Instanz
Zugriff auf Daten Nur auf statische Mitglieder der Klasse Auf statische Mitglieder und Instanzdaten
Schlüsselwort static Nicht vorhanden (Standard)
using System;

public class MyClass
{
    // Statisches Feld
    public static string StaticData = "This is static data";

    // Instanzfeld
    public string InstanceData = "This is instance data";

    // Statische Methode
    public static void StaticMethod()
    {
        Console.WriteLine("Statische Methode aufgerufen.");
        Console.WriteLine(StaticData); // Zugriff auf statisches Feld
        // Console.WriteLine(InstanceData); // Fehler: Kein Zugriff auf Instanzfeld
    }

    // Instanzmethode
    public void InstanceMethod()
    {
        Console.WriteLine("Instanzmethode aufgerufen.");
        Console.WriteLine(StaticData); // Zugriff auf statisches Feld
        Console.WriteLine(InstanceData); // Zugriff auf Instanzfeld
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Aufruf der statischen Methode über den Klassennamen
        MyClass.StaticMethod();

        // Erstellen einer Instanz der Klasse
        MyClass myObject = new MyClass();

        // Aufruf der Instanzmethode über das Objekt
        myObject.InstanceMethod();
    }
}