CodeGym /Kurslar /Java SELF AZ /Siniflərin yüklənməsi

Siniflərin yüklənməsi

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

Artıq danışmışdıq ki, siniflər mürəkkəb məlumat tipləridir. İndi isə Java-maşın tərəfindən siniflərin işlənməsinə bir az nəzər salaq: Java-da hər şey obyekt sayılır, hətta sinif də. Sinif bir obyektdir. Maraqlıdır? Onda davam edək.

Sinifin yaddaşa yüklənməsi

Əslində, sinif yaddaşa yüklənərkən üç xüsusi “obyekt” yaradılır:

Sinifin yaddaşa yüklənməsi

Şəkilin qısa təsviri

Sarı düzbucaqlı:

Kod faylı diskin üzərində ".class" uzantısı ilə saxlanılır. Bu fayl sinif, onun sahələri və metodları haqqında məlumat, eləcə də bayt-kod ilə kompilyasiya edilmiş metod kodunu ehtiva edir.

Narıncı düzbucaqlı:

Java-maşın sinifi yaddaşa yükləyərkən, onun bayt-kodunu kompüterin prosessoru və əməliyyat sisteminə uyğun olaraq maşın koduna kompilyasiya edir. Bu maşın koduna yalnız Java-maşın daxil ola bilir: biz Java-proqramçıları olaraq ona keçidimiz yoxdur.

Yaşıl düzbucaqlı:

Java-maşın xüsusi bir obyekt yaradır ki, burada sinifin bütün statik dəyişənləri və metodları saxlanılır. Bu "obyektə" sinifin adı üzrə keçidiniz olur.

Məsələn, siz java.lang.Math.PI yazdığınızda, PI adlı statik dəyişənə müraciət edirsiniz, hansı ki, java.lang.Math sinifində saxlanılır. Bax bu java.lang.Math bizim yaşıl düzbucaqlımızdır. Onun içində PI adlı statik dəyişən saxlanılır.

Mavi düzbucaqlı:

Java-maşın sinif kodunu yaddaşa yükləyərkən, həmin sinif haqqında məlumat saxlayan xüsusi bir java.lang.Class tipli obyekt yaradır: sinifin adı, metodların adları və tipləri, sahələrin tip və adları və s.

"Class" adı bir az çaşdırıcı ola bilər. Daha məntiqli olardı ki, ClassInfo adlandırıla. Bu sinif yalnız yaddaşa yüklənmiş sinif haqqında məlumat saxlayır.

Sinif obyektini istənilən tipdən aşağıdakı şəkildə almaq mümkündür:

Class ad = SinifAdi.class;

Nümunələr:

Kod Qeyd
Class a = String.class;
Class tipli obyekt alırıq, String sinfi haqqında məlumat ilə.
Class b = Object.class;
Class tipli obyekt alırıq, Object sinfi haqqında məlumat ilə.
Class c = Integer.class;
Class tipli obyekt alırıq, Integer sinfi haqqında məlumat ilə.
Class d = int.class;
Class tipli obyekt alırıq, int tipi haqqında məlumat ilə.
Class e = void.class;
Class tipli obyekt alırıq, void tipi haqqında məlumat ilə.

Sinif təsvir edən obyektə keçidi obyektlərdə də almaq olar: bunun üçün hər bir obyektdə Object sinifindən miras alınmış getClass() metodu var.

Nümunələr:

Kod Qeyd
Class a = "Salam".getClass();
String.class ilə eyni obyektdir
Class b = new Integer().getClass();
Integer.class ilə eyni obyektdir
Class c = Boolean.TRUE.getClass();
Boolean.class ilə eyni obyektdir
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION