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.