U objektno-orijentisanim programskim tehnikama, program se piše koristeći objekte i klase. Objekt može biti kako fizički tako i logički entitet dok je klasa samo logički entitet.
Entitet koji ima stanje i ponašanje se naziva objekt napr. stolica, bicikl, marker, olovka, stol, auto itd. On može biti fizički ili logički. Primjer logičkog objekta je bankarski sistem. Objekt ima tri karakteristike:
Napr. : Olovka je objekt. Njeno ime (marka) je napr. Centropen, boja je bijela itd. što čini njeno stanje. Koristi se za pisanje, tako da je pisanje njeno ponašanje. Objekt je instanca klase. Klasa je šablon ili nacrt /BLUEPRINT/ po kojem se kreiraju objekti. Znači, objekt je instanca (rezultat) klase.
Klasa je grupa objekata koji imaju zajedničke osobine. Ona je šablon ili nacrt po kojem se objekti kreiraju. Klasa u Javi može sadržati:
Sintaksa za deklarisanje klase
class <class_name>{ data member; method; }
Jednostavan primjer objekta i klase U ovom primjeru, kreiraćemo klasu Student koja ima dva podatka člana id i ime. Kreiraćemo objekt klase Student pomoću ključne riječi new i ispisaćemo vrijednost objekta.
class Student1{ int id; //data member (podatak-član, takođe instansna varijabla) String name; //data member(podatak-član, takođe instansna varijabla) public static void main(String args[]){ Student1 s1=new Student1(); //kreiranje objekta klase Student System.out.println(s1.id); System.out.println(s1.name); } } Ispis na ekranu: 0 null
Instansna varijabla u Javi Varijabla koja je kreirana unutar klase ali izvan metoda, se naziva instansna varijabla. Instansna varijabla ne dobija memoriju u vremenu kompajliranja. Ona dobija memoriju u vremenu izvršavanja /RUNTIME/ kada je objekt (instanca) kreiran. To je razlog zbog kojeg se naziva instansna varijabla. Metoda u Javi U Javi, metoda je poput funkcije tj. koristi se da izrazi ponašanje objekta. Prednosti metode
Ključna riječ new Ključna riječ new se koristi da alocira (dodijeli) memoriju u vremenu izvršavanja /RUNTIME/. Primjer objekta i klase koji sadrže zapise o studentima U ovom primjeru, kreiraćemo dva objekta klase Student i inicijaliziraćemo vrijednost ovih objekata pozivajući metod insertRecord. Pokazaćemo stanje (podatke) objekata pozivajući metod displayInformation.
class Student2{ int rollno; String name; void insertRecord(int r, String n){ //metod rollno=r; name=n; } void displayInformation(){System.out.println(rollno+" "+name);} //metod public static void main(String args[]){ Student2 s1=new Student2(); Student2 s2=new Student2(); s1.insertRecord(111,"Petar"); s2.insertRecord(222,"Marko"); s1.displayInformation(); s2.displayInformation(); } } Ispis na ekranu: 111 Petar 222 Marko
Kao što se može vidjeti na slici, objekt dobija memoriju u Heap oblasti a referentne (adresne) varijable upućuju na objekt alociran u Heap memorijskoj oblasti. Ovdje su i s1 i s2 referentne varijable koje upućuju na objekte alocirane u memoriji. Drugi primjer objekta i klase Ovdje je dat još jedan primjer koji sadrži zapise o klasi Rectangle. Objašnjenje je isto kao u prethodnom primjeru za klasu Student.
class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } Ispis na ekranu: 55 45
Postoji više načina za kreiranje objekta u Javi. To su:
Anonimni objekt Anonimni jednostavno znači bez imena. Objekt koji nema reference se naziva anonimni objekt. Ako je potrebno neki objekt upotrijebiti samo jednom, anonimni objekt je dobar pristup.
class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact=fact*i; } System.out.println("faktorijel je "+fact); } public static void main(String args[]){ new Calculation().fact(5); //pozivanje metoda sa anonimnim objektom } } Ispis na ekranu: Faktorijel je 120
Kreiranje više objekata pomoću samo jednog tipa Moguće je kreirati više objekata pomoću samo jednog tipa kao što se radi u slučaju primitiva.
Rectangle r1=new Rectangle(), r2=new Rectangle(); //kreiranje dva objekta
Pogledajmo primjer:
class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} public static void main(String args[]){ Rectangle r1=new Rectangle(), r2=new Rectangle(); //kreiranje dva objekta r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } Ispis na ekranu: 55 45
Zadaci iz ovog poglavlja Objektno orijentisano programiranje u Javi Index