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();
}
}