Junior
Care este diferența dintre o metodă statică și o metodă de instanță?
sobes.tech AI
Răspuns de la AI
Un metod static aparține clasei și este apelat fără a crea o instanță a obiectului. Metoda de instanță aparține unei instanțe a clasei și este apelată prin obiectul creat.
Diferențele principale:
| Criteriu | Metoda statică | Metoda de instanță |
|---|---|---|
| Apartenență | Clasei | Instanței clasei |
| Apel | Prin numele clasei | Prin obiectul instanței |
| Acces la date | Doar la membrii statici ai clasei | La membrii statici și la datele instanței |
| Cuvânt cheie | static |
Absent (implicit) |
using System;
public class MyClass
{
// Câmp static
public static string StaticData = "This is static data";
// Câmp de instanță
public string InstanceData = "This is instance data";
// Metodă statică
public static void StaticMethod()
{
Console.WriteLine("Metodă statică apelată.");
Console.WriteLine(StaticData); // Acces la câmpul static
// Console.WriteLine(InstanceData); // Eroare: nu se poate accesa câmpul de instanță
}
// Metodă de instanță
public void InstanceMethod()
{
Console.WriteLine("Metodă de instanță apelată.");
Console.WriteLine(StaticData); // Acces la câmpul static
Console.WriteLine(InstanceData); // Acces la câmpul de instanță
}
}
public class Program
{
public static void Main(string[] args)
{
// Apelarea metodei statice prin numele clasei
MyClass.StaticMethod();
// Crearea unei instanțe a clasei
MyClass myObject = new MyClass();
// Apelarea metodei de instanță prin obiect
myObject.InstanceMethod();
}
}