Junior
Ποια είναι η διαφορά μεταξύ μιας στατικής μεθόδου και μιας μεθόδου στιγμιότυπου;
sobes.tech AI
Απάντηση από AI
Μια στατική μέθοδος ανήκει στην κλάση και καλείται χωρίς να δημιουργηθεί ένα αντικείμενο. Η μέθοδος της στιγμής ανήκει σε ένα στιγμιότυπο της κλάσης και καλείται μέσω του δημιουργημένου αντικειμένου.
Βασικές διαφορές:
| Κριτήριο | Στατική μέθοδος | Μέθοδος στιγμής |
|---|---|---|
| Ανήκει | Στην κλάση | Στο στιγμιότυπο της κλάσης |
| Κλήση | Μέσω του ονόματος της κλάσης | Μέσω του αντικειμένου της στιγμής |
| Πρόσβαση σε δεδομένα | Μόνο στα στατικά μέλη της κλάσης | Στα στατικά μέλη και στα δεδομένα του στιγμιότυπου |
| Λέξη-κλειδί | static |
Απουσιάζει (προεπιλογή) |
using System;
public class MyClass
{
// Στατικό πεδίο
public static string StaticData = "This is static data";
// Πεδίο στιγμής
public string InstanceData = "This is instance data";
// Στατική μέθοδος
public static void StaticMethod()
{
Console.WriteLine("Κλήθηκε η στατική μέθοδος.");
Console.WriteLine(StaticData); // Πρόσβαση στο στατικό πεδίο
// Console.WriteLine(InstanceData); // Σφάλμα: δεν υπάρχει πρόσβαση στο πεδίο στιγμής
}
// Μέθοδος στιγμής
public void InstanceMethod()
{
Console.WriteLine("Κλήθηκε η μέθοδος στιγμής.");
Console.WriteLine(StaticData); // Πρόσβαση στο στατικό πεδίο
Console.WriteLine(InstanceData); // Πρόσβαση στο πεδίο στιγμής
}
}
public class Program
{
public static void Main(string[] args)
{
// Κλήση της στατικής μεθόδου μέσω του ονόματος της κλάσης
MyClass.StaticMethod();
// Δημιουργία στιγμιότυπου της κλάσης
MyClass myObject = new MyClass();
// Κλήση της μεθόδου στιγμής μέσω του αντικειμένου
myObject.InstanceMethod();
}
}