Objektno orijentirani pristup Java programiranja i enkapsulacije - 5. dio


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

Svaki objekt u Javi ima stanje i ponašanje koje predstavljaju varijable instance i metode. Svaki primjerak klase može imati jedinstvenu vrijednost za svoju varijablu instance.

Na primjer,

Stroj A može imati Debian i 8 GB RAM-a dok Stroj B može imati instaliran Gentoo s 4 GB RAM-a. Također je očito da upravljanje Strojem koji ima instaliran Gentoo zahtijeva više znanja – ponašanje koje djeluje na njegovo stanje. Ovdje metoda koristi vrijednosti varijable instance.

JVM kada analizira klasu, stvara objekt te vrste. Kada pišete klasu, zapravo se ponašate kao prevodilac koji svojoj klasi govori što bi objekt trebao znati i kako bi se trebao ponašati. Svaki objekt određene vrste može imati različitu vrijednost za istu varijablu instance.

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

OS klasa ima 3 varijable instance, naime OS naziv, OS tip, OS kategorija.

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 dignut ćete se u Debian dok ćete se na drugoj instanci dignuti u 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 metode main(). Možete proslijediti vrijednosti u svoju metodu.

Na primjer, želite reći svom OS-u koje usluge treba pokrenuti pri dizanju 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 proslijedite metodama naziva se argumentima. 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 OS-a prosljeđuje vrijednost 600 (ponovno pokretanje stroja nakon 600 sekundi) kao argument metode. Do sada smo vidjeli da metoda uvijek vraća void, što znači da vam ne vraća ništa, jednostavno kao:

void main()
	{
	…
	…
	}

Međutim, možete zatražiti od svog prevoditelja da dobije točno ono što želite i vaš prevodilac 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 da pozovete dvije metode parametra i pošaljete ih argumentima. Napomena: tip varijable i tip parametra moraju uvijek odgovarati.

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 za inicijalizaciju.

int a;
float b;
string c;

2. Kada znate vrijednost koju treba inicijalizirati.

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

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

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 moraju se inicijalizirati prije nego što se mogu koristiti. Kompajler će prijaviti pogrešku ako koristite lokalnu varijablu prije nego što je inicijalizirana.

Enkapsulacija

Možda ste čuli za enkapsulaciju. To je značajka većine objektno orijentiranih programskih jezika koja omogućuje povezivanje podataka i funkcija u jednu komponentu. Enkapsulaciju podržava klasa 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 vodiču kada bude potrebno. Od sada je dovoljno da znate što je enkapsulacija? Što to radi? I kako to radi?

To je sve za sada. Ostanite povezani za sljedeći dio ove Java serije “klase 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.