Poziv po vrednosti u Javi (Call by Value)

Poziv po vrednosti u Javi (Call by Value)

U Javi postoji samo poziv po vrednosti, ne i poziv po referenci. Ako pozovemo metod koji prosleđuje vrednost, to je poznato kao poziv po vrednosti. Promene se dešavaju u pozvanom metodu, ne obuhvataju pozivajući metod. Primer poziva po vrednosti u Javi U slučaju poziva po vrednosti izvorna vrednost nije promenjena. Pogledajmo jednostavan primer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
  Primer 2  poziva po vrednosti u Javi U slučaju poziva po referenci izvorna vrednost se menja ako mi načinimo promene u pozvanom metodu. Ako prosledimo objekat umesto neke primitivne vrednosti, izvorna vrednost će biti promenjena. U ovom primeru prosleđujemo objekat kao vrednost. Pogledajmo jednostavan primer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);  //prosleđuje objekt 
   System.out.println("after change "+op.data); 
  
 
}
Ispis na ekranu:
before change 50
after change 150

Comments

comments

Close Menu
Show Buttons
Hide Buttons