Objekat i klasa u Javi

Objekat i klasa u Javi

U objektno-orijentisanim programskim tehnikama, program se piše koristeći objekte i klase. Objekat može biti kako fizički tako i logički entitet, dok je klasa samo logički entitet.

Objekat u Javi

Entitet koji ima stanje i ponašanje se naziva objekat npr. stolica, bicikl, marker, olovka, sto, auto itd. Objekat može biti fizički ili logički. Primer logičkog objekta je bankarski sistem. Objekat ima tri karakteristike:
  • stanje: predstavlja podatke (vrednosti) objekta.
  • ponašanje: predstavlja ponašanje (funkcionalnost) objekta kao što su depozit, podizanje novca itd.
  • identitet: identitet objekta se tipično implementira preko jedinstvenog ID. Vrednost ID nije vidljiva spoljašnjem korisniku. Ali, ona se koristi interno od strane JVM (Java Virtual Machine) da identifikuje svaki objekat na jedinstven način.
Npr. : Olovka je objekat. Njeno ime (marka) je npr. Rotring, boja je bela itd. što čini njeno stanje. Koristi se za pisanje, tako da je pisanje njeno ponašanje. Objekat je instanca klase. Klasa je šablon ili nacrt /BLUEPRINT/ po kojem se kreiraju objekti. Znači, objekat je instanca (rezultat) klase.

Klasa u Javi

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:
  • podatak-član
  • metodu
  • konstruktor
  • blok
  • klasu i interfejs
Sintaksa za deklarisanje klase
1
2
3
4
class
    data member; 
    method; 
}
Jednostavan primer objekta i klase U ovom primeru, kreiraćemo klasu Student koja ima dva podatka člana id i ime. Kreiraćemo objekat klase Student pomoću ključne reči new i ispisaćemo vrednost objekta.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Student1{ 
 int id; //data member (podatak-član, takođe instancna promenljiva) 
 String name; //data member(podatak-član, takođe instancna promenljiva) 
  
 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
Instancna promenljiva u Javi: Promenljiva koja je kreirana unutar klase ali izvan metoda, se naziva instancna promenljiva. Instancna promenljiva 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 instancna promenljiva. Metoda u Javi: U Javi, metoda je poput funkcije tj. koristi se da izrazi ponašanje objekta. Prednosti metode
  • Ponovna upotrebljivost koda (reusability)
  • Optimizacija koda
Ključna reč new: Ključna reč new se koristi da alocira (dodeli) memoriju u vremenu izvršavanja /RUNTIME/. Primer objekta i klase koji sadrže zapise o studentima U ovom primeru, kreiraćemo dva objekta klase Student i inicijalizovaćemo vrednost ovih objekata pozivajući metod insertRecord. Pokazaćemo stanje (podatke) objekata pozivajući metod displayInformation.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 videti na slici, objekat dobija memoriju u Heap oblasti a referentne (adresne) promenljive upućuju na objekat alociran u Heap memorijskoj oblasti. Ovde su i s1 i s2 referentne promenljive koje upućuju na objekte alocirane u memoriji. Drugi primer objekta i klase Ovde je dat još jedan primer koji sadrži zapise o klasi Rectangle. Objašnjenje je isto kao u prethodnom primeru za klasu Student.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

Različiti načini za kreiranje objekta u Javi

Postoji više načina za kreiranje objekta u Javi. To su:
  • pomoću ključne reči new
  • pomoću metode newInstance()
  • pomoću metode clone()
  • pomoću factory metode itd.
Anonimni objekat Anonimni jednostavno znači bez imena. Objekat koji nema reference se naziva anonimni objekat. Ako je potrebno neki objekat upotrebiti samo jednom, anonimni objekt je dobar pristup.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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.
1
Rectangle r1=new Rectangle(),  r2=new Rectangle();  //kreiranje dva objekta 
Pogledajmo primer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

Comments

comments

Close Menu
Show Buttons
Hide Buttons