Objektinis Java programavimo ir inkapsuliavimo metodas – 5 dalis


Nuo šios serijos pradžios (ir dar prieš tai) žinojote, kad Java yra objektinė programavimo kalba. Objektinė programavimo kalba yra pagrįsta „objektų“ koncepcija, kuri apima duomenis kaip metodų atributus.

Kiekvienas Java objektas turi būseną ir elgseną, kuri yra pavaizduota egzempliorių kintamaisiais ir metodais. Kiekvienas klasės egzempliorius gali turėti unikalią jo egzemplioriaus kintamojo vertę.

Pavyzdžiui,

Įrenginys A gali būti maitinamas naudojant „Debian“ ir turėti 8 GB RAM, o Machine B gali būti įdiegtas „Gentoo“ su 4 GB RAM. Taip pat akivaizdu, kad valdyti Įrenginį, kuriame įdiegta Gentoo, reikia daugiau žinių – elgsenos, veikiančios jos būseną. Čia metodas naudoja egzempliorių kintamųjų reikšmes.

JVM, kai analizuoja klasę, sukuria tokio tipo objektą. Kai rašote klasę, iš tikrųjų elgiatės kaip kompiliatorius, nurodantis klasei, ką objektas turėtų žinoti ir kaip jis turėtų veikti. Kiekvienas tam tikro tipo objektas tam pačiam egzemplioriaus kintamajam gali turėti skirtingą reikšmę.

Kiekvienas klasės egzempliorius turi tą patį metodą, tačiau gali būti, kad visi jie elgsis skirtingai.

OS klasėje yra 3 egzempliorių kintamieji, būtent OS pavadinimas, OS tipas, OS kategorija.

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

Metodas Boot() paleidžia vieną OS, kuriai nurodomas to egzemplioriaus OS pavadinimas. Taigi, jei boot() viename egzemplioriuje paleidžiate Debian, o kitame – Gentoo. Metodo kodas abiem atvejais išlieka tas pats.

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

Jau žinote, kad programa pradedama vykdyti iškart po metodo main(). Galite perkelti vertes į savo metodą.

Pavyzdžiui, norėtumėte pasakyti OS, kokias paslaugas pradėti paleisti kaip:

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);

Tai, ką perkeliate į metodus, vadinama argumentais. Metodo viduje galite naudoti kintamąjį su tipu ir pavadinimu. Svarbu perduoti reikšmes su parametru, jei metodas paima parametrą.

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

Čia OS perkrovimo metodas perduoda 600 reikšmę (iš naujo paleiskite mašiną po 600 sekundžių) kaip metodo argumentą. Iki šiol matėme, kad metodas visada grąžina tuščią vietą, o tai reiškia, kad jis jums nieko negrąžina, tiesiog kaip:

void main()
	{
	…
	…
	}

Tačiau galite paprašyti savo kompiliatoriaus gauti būtent tai, ko norite, ir jūsų kompiliatorius nepateiks jums netinkamų tipų. Galite tiesiog padaryti taip:

int Integer()
	{
	…
	…
	return 70;
	}

Metodui galite siųsti daugiau nei vieną vertės reikšmę. Tai galite padaryti iškviesdami du parametrų metodus ir nusiųsdami juos į argumentus. Atminkite, kad kintamojo tipas ir parametro tipas visada turi atitikti.

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
Deklaruoti ir inicijuoti egzempliorių kintamuosius

1. Kai nežinote inicijuotinos vertės.

int a;
float b;
string c;

2. Kai žinoma reikšmė, kurią reikia inicijuoti.

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

Pastaba: egzempliorių kintamieji dažnai painiojami su vietiniais kintamaisiais, tačiau juos atskirti yra labai plona linija.

3. Egzempliorių kintamieji deklaruojami klasėje, skirtingai nei vietiniai kintamieji, kurie deklaruojami metodu.

4. Priešingai nei egzempliorių kintamieji, vietiniai kintamieji turi būti inicijuoti, kad būtų galima juos naudoti. Kompiliatorius praneš apie klaidą, jei naudosite vietinį kintamąjį prieš jį inicijuojant.

Inkapsuliavimas

Galbūt esate girdėję apie kapsuliavimą. Tai daugumos objektinio programavimo kalbų ypatybė, leidžianti susieti duomenis ir funkcijas į vieną komponentą. Inkapsuliavimas palaikomas pagal klasę ir apsaugo kodus nuo atsitiktinio sugadinimo sukurdama sieną aplink objektus ir paslepia jų savybes bei metodus pasirinktinai.

Kai prireiks, mes išplėsime išsamią inkapsuliaciją tinkamoje mokymo programoje. Šiuo metu jums pakanka žinoti, kas yra inkapsuliacija? Ką tai daro? Ir kaip tai veikia?

Tai kol kas viskas. Būkite prisijungę prie kitos šios „Java“ serijos dalies „Java klasė ir objektai ir sukurkite pirmąjį Java objektą“, kol aš su ja dirbu. Jei jums patinka serialas ir paskelbkite, praneškite mums atsiliepimuose.