Uyğun bir nümunə (proqram) ilə instansiya və statik dəyişənlər arasındakı fərq nədir?


cavab 1:

Hər kəs gözəl nümunələr və izahlar verdi. Birinə davam edəcəyəm:

İnstans dəyişən bir sinifin hər obyektinin (misalının) mülkiyyətidir.

Statik dəyişənlər sinfin özünə aiddir və bu sinifin müəyyən bir obyektinə (instansiyasına) aid deyildir.

Müqayisə və kontrast:

  1. Sinif yükləndikdə statik dəyişənlər işə salınır. Cisimlər üzərindəki məqam. Statik dəyişənə sinif adı ilə daxil olmaq mümkündür. Məsələn, yalnız obyekt vasitəsilə əldə edilə bilən dəyişən bir obyekt yaradılmalıdır. Nümunə

Sintaksis dildən fərqli ola bilər

Class_A :: staticVariable // əldə edilə bilər

ObjClass_A = yeni Sinif_A

ObjClass_A.instanceVariable

3. Statik dəyişənlər bir dəfə başlanıla bilər. Beləliklə, singleton modelindəki əsas anlayışdır.

4. Statik dəyişənlər abstrakt siniflər üçün interfeys hissəsi ola bilməzlər, çünki yaddaş yoxdur.



cavab 2:

İnstans dəyişən bir sinifin hər obyektinin (misalının) mülkiyyətidir.

Statik dəyişənlər sinfin özünə aiddir və bu sinifin müəyyən bir obyektinə (instansiyasına) aid deyildir.

-

Məsələn:

Sinif işçisi {xüsusi statik int işçiCount = 0; xüsusi simli empName; fərdi int empId; // ictimai işçi dizayneri (String eName, int eId) {this.empName = eName; this.empId = eId; işçiCount ++; } ictimai işçi addEmployee (String eName, int eId) {yeni işçi qayıt (eName, eId); } ictimai boşluq silEmployee (int eId) {işçilərin sayı -; } public int getEmployeeCount () {işçilərin geri qayıtması; }}

Bu sadə nümunədə, işçi hesabı işçilərin cari sayını göstərən bir dəyişkəndir. İşçi sayını yalnız bir işçi əlavə etsək və ya sildikdə artır və ya azalacağıq.

EmpName və empId nümunə dəyişənlərdir, çünki işçi obyektlərinə bağlıdırlar və hər bir obyekt üçün tercihen fərqlidirlər.

Buna görə, bütün obyektlərə tətbiq olunan dəyişənlər statik dəyişənlər olmalıdır, əks halda nümunə dəyişən olmalıdır.



cavab 3:

İnstans dəyişənliyi sinifdə təyin olunan bir dəyişəndir və hər bir nümunənin (o sinifin obyekti) ayrı bir nüsxəsi var. Obyekt mövcud olduğu müddətcə yaddaşda qalır.

Sinif testi {string abc; }

Yuxarıda göstərilənləri əldə etmək üçün Test sinifini dərhal hazırlamalısınız

Test t = yeni test (); t.abc = "Salam dünya". Test t1 = yeni test (); t1.abc = "Xoş gəlmisiniz" testi t2 = yeni test (); t2.abc = "test";

Yuxarıdakı nümunəni görürsünüzsə, sinifin 3 obyekti var, t, t1 və t2, hər biri instansiya dəyişən abc-in öz nüsxəsinə malikdir və fərqli yerlərdə saxlanılır.

Statik dəyişənlər, digər tərəfdən, bir obyektə deyil, bir sinifə təyin olunur. Sinif adı ilə xatırlanan yaddaşda sabit bir yerə sahibdirlər.

Sinif testi {string abc; statik tam = 0; }

Sayğac dəyişəninə daxil olmaq üçün sınağa başlamaq lazım deyil. Sadəcə olaraq buna nail olursan

Test.count = 1;

Ümumiyyətlə, istəsəniz statik dəyişənlər istifadə olunur



cavab 4:

Daha çox məlumat və nümunə kodu əldə etmək üçün bu növ sualları google-a göndərə bilərsiniz

Instance dəyişən - Sinif daxilində elan edilən, lakin metoddan kənar bir dəyişən bir nümunə dəyişən adlanır. Statik olaraq elan edilmir.

Statik dəyişən - Statik olaraq elan edilən dəyişənə statik dəyişən deyilir. Yerli ola bilməz, hər hansı bir obyekt üçün deyil, bütün sinif üçün

Sinif testi {int iv = 10; // nümunə dəyişən statik int sv = 100; // statik dəyişən yalnış metod () {int lv = 50; // yerli dəyişən}}

Daha çox məlumat üçün Java dəyişkən növlərinə baxın