Sobes.tech
Junior — Middle

Java-da sinif sahələri ilə metodlar daxilindəki yerli dəyişənlər arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da sinif sahələri (nümunə dəyişənləri və ya statik sahələr) və metodlar daxilində yerli dəyişənlər, əhatə dairəsi, həyat müddəti və yaddaş yeri baxımından fərqlənir:

  • Sinif sahələri:

    • Sinif daxilində, amma metodların xaricində elan edilir.
    • Obektdə (statik deyilsə) və ya sinif sahəsində (statikdirsə) saxlanılır.
    • Metod çağırışları arasında dəyərini saxlayır.
    • Müxtəlif metodlardan (giriş səviyyəsindən asılı olaraq) əlçatan olur.
  • Yerli dəyişənlər:

    • Metod daxilində elan edilir.
    • Yalnız metodun icrası zamanı mövcuddur.
    • Çağrı yığını (stack) üzərində saxlanılır.
    • Elan olunduğu metod xaricində əlçatan deyil.

Nümunə:

public class Example {
    int field = 10; // sinif sahəsi

    public void method() {
        int localVar = 5; // yerli dəyişən
        System.out.println(field + localVar);
    }
}

Burada, field obyektin vəziyyətini saxlayır, localVar isə yalnız method metodunun icrası zamanı mövcuddur.