Obyekt vs Nümunə
Obyekt yönümlü proqramlaşdırma (OOP) ən məşhur proqramlaşdırma paradiqmalarından biridir. OOP-da diqqət real dünya elementləri baxımından həll edilməli olan problem haqqında düşünməyə və problemi obyektlər və onların davranışları baxımından təmsil etməyə yönəldilmişdir. OOP-un əsas aspektlərini dəstəkləyən bir çox proqramlaşdırma dilləri (OOP dilləri adlanır) əsas proqramlaşdırma aləti kimi sinifə malikdir. Onlara sinif əsaslı deyilir. Siniflər real dünya obyektlərinin mücərrəd təsviridir. Siniflərin atribut adlanan xassələri var. Atributlar qlobal və instansiya dəyişənləri kimi həyata keçirilir. Siniflərdəki metodlar bu siniflərin davranışını təmsil edir və ya müəyyən edir. Siniflərin metod və atributlarına sinif üzvləri deyilir. Çox sadə dillə desək, sinif konkret real həyat obyekti üçün plan və ya şablondur. Beləliklə, obyekt bu plana uyğun olaraq lazımi məlumatları saxlamaq üçün istifadə olunan yaddaş blokudur (blokları). Nümunə obyektə istinad edən yaddaş blokudur.
Obyekt nədir?
Obyektlər sinfin yaradılmasının nəticələridir. İnstantiasiya planın götürülməsi və hər bir atribut və davranışın müəyyənləşdirilməsi prosesidir ki, nəticədə yaranan obyekt əslində real həyat obyektini təmsil etsin. Obyekt dəyişənlər, metodlar və ya funksiyalar və s. kimi məlumatları saxlamaq üçün ayrılmış xüsusi və davamlı yaddaş blokudur. Obyekt Java proqramlaşdırma dilində yeni operatorun istifadəsi ilə yaradılmışdır. Məsələn, Car adlı sinif varsa, Car sinifinin obyektini yaratmaq üçün aşağıdakılardan istifadə edilə bilər.
yeni Avtomobil();
Burada yeni operator tərəfindən Avtomobil obyekti yaradılır və obyektə istinad qaytarılır. Yeni obyekti yaratmaq üçün Car sinifinin konstruktoru ilə birlikdə yeni operator istifadə olunur. Obyektin ömrü konstruktora edilən zəngdən onun məhv edilməsinə qədər başlayır. Obyekt istinad edilmədikdə, o, zibil yığan tərəfindən silinəcək/dağıdılacaq.
Nümunə nədir?
Nümunə obyektə istinadı ehtiva edən yaddaş blokudur. Başqa sözlə, Instance obyektin saxlandığı başlanğıc yaddaş blokunun ünvanını saxlayacaqdır. Əslində, nümunənin adı obyekt yaddaş sahəsinin başlanğıcına daxil olmaq üçün istifadə edilə bilər. Başlanğıc yaddaşdan ofsetlər iş vaxtı mühərriki tərəfindən hesablanır ki, biz fərdi məlumatların və ya metod istinadlarının saxlandığı yerə gedə bilək. Aşağıdakı Java kodunun kəsilməsi Avtomobil obyektinin nümunəsini yaratmaq üçün istifadə edilə bilər.
Car myCar=yeni Avtomobil();
Yuxarıda qeyd edildiyi kimi, yeni operator Avtomobil obyektini yaradır və ona istinadı qaytarır. Bu arayış Avtomobil növü dəyişən myCar-da saxlanılır. Beləliklə, myCar yaradılmış Avtomobil obyektinin nümunəsidir.
Obyektlə Nümunə arasındakı fərq nədir?
Obyekt bu obyekti digər obyektlərdən fərqləndirən faktiki məlumatı saxlayan bitişik yaddaş blokudur, nümunə isə obyektə istinaddır. Bu, obyektin saxlandığı ünvana işarə edən yaddaş blokudur. İki nümunə eyni obyektə istinad edə bilər. Bir obyektin və nümunənin həyat müddətləri əlaqəli deyil. Buna görə bir nümunə null ola bilər. Obyektə işarə edən bütün nümunələr silindikdən sonra obyekt məhv ediləcək.