Objektno orijentirani pristup Java programiranju i inkapsulaciji - 5. dio


Od početka ove serije (pa čak i pre toga) znali ste da je Java objektno orijentisani programski jezik. Objektno orijentisani programski jezik zasniva se na konceptu “objekti”, koji sadrži podatke kao atribute u metodama.

Svaki objekat u Javi ima stanje i ponašanje koje su predstavljene varijablama i metodama instance. Svaka instanca klase može imati jedinstvenu vrijednost za varijablu svoje instance.

Na primjer,

Mašina A može biti uključena s Debianom i imati 8 GB RAM-a, dok Mašina B može imati instaliran Gentoo sa 4 GB RAM-a. Takođe je očigledno da upravljanje mašinom koja je instalirala Gentoo zahteva više znanja – ponašanje koje deluje na njeno stanje. Ovdje metoda koristi vrijednosti varijable instance.

JVM kada analizira klasu, pravi objekat te vrste. Kada pišete klasu, u stvari se ponašate kao kompajler koji vašoj klasi govori šta objekat treba da zna i kako treba da deluje. Svaki objekat određenog tipa može imati različitu vrijednost za istu varijablu instance.

Svaka instanca klase ima isti metod, ali je moguće da se sve ponašaju drugačije.

OS klasa ima 3 varijable instance i to OS ime, OS tip, OS Category.

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

Metoda Boot() pokreće jedan OS koji je predstavljen imenom OS-a za tu instancu. Dakle, ako boot() na jednoj instanci, dizat ćete se u Debian dok ćete na drugoj instanci pokrenuti Gentoo. Kod metode ostaje isti u oba slučaja.

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

Već ste svjesni da se program počinje izvršavati odmah nakon main() metode. Možete proslijediti vrijednosti u svoj metod.

Na primjer, želite da vam kažete koje usluge treba pokrenuti pri pokretanju kao:

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

Ono što prenosite u metode naziva se argumenti. Možete koristiti varijablu s tipom i imenom unutar metode. Važno je proslijediti vrijednosti s parametrom ako metoda uzima parametar.

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

Ovdje metoda ponovnog pokretanja na OS-u prosljeđuje vrijednost 600 (ponovno pokretanje mašine nakon 600 sekundi) kao argument metodi. Do sada smo vidjeli metodu koja uvijek vraća void, što znači da vam ništa ne vraća, jednostavno kao:

void main()
	{
	…
	…
	}

Međutim, možete tražiti od svog kompajlera da dobije upravo ono što želite i vaš kompajler vam neće vratiti pogrešne tipove. Možete jednostavno učiniti sljedeće:

int Integer()
	{
	…
	…
	return 70;
	}

Metodi možete poslati više od jedne vrijednosti vrijednosti. To možete učiniti tako što ćete pozvati dva parametarska metoda i poslati ih argumentima. Napomena: tip varijable i tip parametra se uvijek moraju podudarati.

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

1. Kada ne znate vrijednost koju treba inicijalizirati.

int a;
float b;
string c;

2. Kada se zna vrijednost za inicijaliziranje.

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

Napomena: Varijable instance se često brkaju s lokalnim varijablama, međutim postoji vrlo tanka linija između njih za razlikovanje.

3. Varijable instance su deklarirane unutar klase za razliku od lokalnih varijabli koje su deklarirane unutar metode.

4. Za razliku od varijabli instance, lokalne varijable se moraju inicijalizirati prije nego što se mogu koristiti. Kompajler će prijaviti grešku ako koristite lokalnu varijablu prije nego što se inicijalizira.

Enkapsulacija

Možda ste čuli za inkapsulaciju. To je karakteristika većine objektno orijentisanog programskog jezika koja omogućava povezivanje podataka i funkcija u jednu komponentu. Enkapsulacija je podržana od strane klase i štiti kodove od slučajnog oštećenja stvaranjem zida oko objekata i skrivanjem njihovih svojstava i metoda, selektivno.

Detaljno ćemo proširiti enkapsulaciju u pravom tutorijalu kada bude potrebno. Za sada je dovoljno da znate šta je inkapsulacija? Šta radi? I kako to radi?

To je sve za sada. Ostanite povezani za sljedeći dio ove Java serije “klasa i objekti u Javi i napravite svoj prvi objekt u Javi” dok ja radim na tome. Ako vam se sviđa serija i objava javite nam u povratnim informacijama.