U Javi postoji samo poziv po vrijednosti, ne i poziv po referenci. Ako pozovemo metod koji prosljeđuje vrijednost, to je poznato kao poziv po vrijednosti. Promjene se dešavaju u pozvanom metodu, ne obuhvataju pozivajući metod.
Primjer poziva po vrijednosti u Javi
U slučaju poziva po vrijednosti izvorna vrijednost nije promijenjena. Pogledajmo jednostavan primjer:
class Operation{
int data=50;
void change(int data){
data=data+100; //promjene će biti samo u lokalnim varijablama
}
public static void main(String args[]){
Operation op=new Operation();
System.out.println("before change "+op.data);
op.change(500);
System.out.println("after change "+op.data);
}
}
Ispis na ekranu:
before change 50
after change 50
Primjer 2 poziva po vrijednosti u Javi
U slučaju poziva po referenci izvorna vrijednost se mijenja ako mi načinimo promjene u pozvanom metodu. Ako proslijedimo objekt umjesto neke primitivne vrijednosti, izvorna vrijednost će biti promijenjena. U ovom primjeru prosljeđujemo objekt kao vrijednost. Pogledajmo jednostavan primjer:
class Operation2{
int data=50;
void change(Operation2 op){
op.data=op.data+100; //promjene će biti u instansnoj varijabli
}
public static void main(String args[]){
Operation2 op=new Operation2();
System.out.println("before change "+op.data);
op.change(op); //prosljeđuje objekt
System.out.println("after change "+op.data);
}
}
Ispis na ekranu:
before change 50
after change 150
Objektno orijentisano programiranje u Javi Index
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |