Sobes.tech
Junior — Middle

Java'da sinf maydonlari va metodlar ichidagi mahalliy o'zgaruvchilar o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

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.