Sobes.tech
Junior

Kuo skiriasi statinis metodas nuo metodo objekto?

sobes.tech AI

Atsakymas iš AI

Statinis metodas priklauso klasei ir kviečiamas be objekto sukūrimo. Objekto metodas priklauso klasės objektui ir kviečiamas per sukurtą objektą.

Pagrindiniai skirtumai:

Kriterijus Statinis metodas Objekto metodas
Priklausomybė Klasės Objekto klasės
Kvietimas Per klasės pavadinimą Per objekto egzistavimą
Duomenų prieiga Tik prie statinių narių Prie statinių narių ir objekto duomenų
Raktinis žodis static Nėra (numatytasis)
using System;

public class MyClass
{
    // Statinis laukas
    public static string StaticData = "Tai yra statinė duomenys";

    // Objekto laukas
    public string InstanceData = "Tai yra objekto duomenys";

    // Statinis metodas
    public static void StaticMethod()
    {
        Console.WriteLine("Statinis metodas iškviestas.");
        Console.WriteLine(StaticData); // Prieiga prie statinio lauko
        // Console.WriteLine(InstanceData); // Klaida: prieiga prie objekto lauko neįmanoma
    }

    // Objekto metodas
    public void InstanceMethod()
    {
        Console.WriteLine("Objekto metodas iškviestas.");
        Console.WriteLine(StaticData); // Prieiga prie statinio lauko
        Console.WriteLine(InstanceData); // Prieiga prie objekto lauko
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Statinio metodo iškvietimas per klasės pavadinimą
        MyClass.StaticMethod();

        // Objekto sukūrimas
        MyClass myObject = new MyClass();

        // Objekto metodo iškvietimas per objektą
        myObject.InstanceMethod();
    }
}