Java programmirlemegiň we encapsulýasiýanyň obýekte gönükdirilen çemeleşmesi - 5-nji bölüm


Bu tapgyryň başyndan bäri (we ondan ozal hem) Java-yň obýekte gönükdirilen programmirleme dilidigini bilýärdiňiz. Obýekte gönükdirilen Programma dili, usullarda atributlar hökmünde maglumatlary öz içine alýan\obýektler düşünjesine esaslanýar.

Java-daky her bir obýektiň üýtgeýjileri we usullary bilen görkezilen ýagdaýy we özüni alyp barşy bar. Synpyň her mysaly, üýtgeýän üçin özboluşly bahasy bolup biler.

Mysal üçin,

“A” enjamy “Debian” bilen işledilip bilner we 8 Gb RAM bolup biler, “B” maşyn bolsa 4 Gb RAM bilen “Gentoo” -ny gurup biler. Şeýle hem, “Gentoo” -ny gurnan “Machine” -ni dolandyrmagyň has köp bilim talap edýändigi äşgärdir - ýagdaýyna görä hereket. Bu ýerde usul üýtgeýän bahalary ulanýar.

JVM synpy seljerende, şunuň ýaly obýekt döredýär. Synp ýazýan wagtyňyz, aslynda obýektiň nämäni bilmelidigini we nähili hereket etmelidigini öz synpyňyza düzýän ýaly hereket edýärsiňiz. Belli bir görnüşdäki her bir obýekt, şol bir üýtgeýän üçin dürli bahalara eýe bolup biler.

Synpyň her mysalynda birmeňzeş usul bar, ýöne olaryň hemmesiniň başgaça hereket etmegi mümkin.

OS synpynda OS ady, OS görnüşi, OS kategoriýasy ýaly 3 Instant üýtgeýjisi bar.

Boot() usuly, mysal üçin OS Name bilen görkezilen bir OS-y açýar. Şeýlelik bilen bir gezek() ýükleseňiz, Debian-a girersiňiz, başga bir ýagdaýda Gentoo-a girersiňiz. Usul kody, iki ýagdaýda-da üýtgewsiz galýar.

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

Programmanyň main() usulyndan soň ýerine ýetirilip başlandygyny eýýäm bilýärsiňiz. Gymmatlyklary size usul bilen geçirip bilersiňiz.

Mysal üçin, OS-a haýsy hyzmatlary başlamalydygyny aýtmak isleýärsiňiz:

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

Usullara geçýän zatlaryňyza argument diýilýär. Usulyň içinde görnüşi we ady bolan üýtgeýjini ulanyp bilersiňiz. Bir usul parametr alsa, bahalary parametr bilen geçirmek möhümdir.

OS deb = debian();
deb.reboot(600);

Bu ýerde OS-da gaýtadan açmak usuly bu usula argument hökmünde 600 bahasyny (600 sekuntdan soň täzeden açmak) geçýär. Şu wagta çenli usulyň elmydama boş gaýdyp gelýändigini gördük, bu bolsa size hiç zady gaýtaryp bermejekdigini aňladýar:

void main()
	{
	…
	…
	}

Şeýle-de bolsa, düzüjiňizden isleýän zadyňyzy anyklamagy sorap bilersiňiz we düzüjiňiz size ýalňyş görnüşleri yzyna gaýtarmaz. Diňe şeýle edip bilersiňiz:

int Integer()
	{
	…
	…
	return 70;
	}

Bir usula birden köp bahany iberip bilersiňiz. Iki parametr usulyna jaň edip, argumentlere iberip bilersiňiz. Üýtgeýjiniň görnüşi we parametr görnüşi hemişe gabat gelmelidir.

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}

1. Başlamagyň bahasyny bilmeseňiz.

int a;
float b;
string c;

2. Başlamak üçin bahany bilende.

int a = 12;
float b = 11.23;
string c = tecmint;

Bellik: Mysal üýtgeýjileri köplenç ýerli üýtgeýjiler bilen bulaşdyrylýar, ýöne tapawutlandyrmak üçin olaryň arasynda gaty inçe çyzyk bar.

3. Instant üýtgeýjiler, usulyň içinde yglan edilen ýerli üýtgeýänlerden tapawutlylykda synpyň içinde yglan edilýär.

4. Instant üýtgeýjilerinden tapawutlylykda, ýerli üýtgeýjiler ulanylmazdan ozal başlamaly. Düzediji başlamazdan ozal ýerli üýtgeýjini ulansaňyz, düzüji ýalňyşlyk barada habar berer.

Enkapsulýasiýa

Gaplamak hakda eşiden bolmagyňyz mümkin. Maglumatlary we funksiýalary bir komponente baglamaga mümkinçilik berýän obýekte gönükdirilen programmirleme diliniň köpüsiniň aýratynlygy. Enkapsulýasiýa synp tarapyndan goldanýar we obýektleriň töwereginde diwar döretmek we olaryň häsiýetlerini we usullaryny saýlap gizlemek bilen kodlary tötänleýin zeperlerden goraýar.

Zerur bolanda, dogry sapakda jikme-jiklikleri giňelderis. Häzirki wagta çenli encapsulýasiýanyň nämedigini bilmek ýeterlikdir? Näme edýär? Bu nähili?

Bularyň hemmesi häzirlikçe. Bu Java Series\synpynyň we Java-daky obýektleriň indiki bölümi üçin baglanyşyp duruň, üstünde işleýän wagtym Java-da ilkinji obýektiňizi ediň. Seriýany we ýazgyny halaýan bolsaňyz, seslenme bilen bize habar beriň.