Gọi bởi giá trị trong Java




Chỉ có gọi bởi giá trị trong Java, không có gọi bởi tham chiếu. Nếu chúng ta gọi một phương thức đang truyền một giá trị, thì đó là gọi bởi giá trị. Các thay đổi đang được thực hiện trong phương thức được gọi, sẽ không bị tác động trong phương thức đang gọi.

Ví dụ về gọi bởi giá trị trong Java

Trong trường hợp gọi bởi giá trị, giá trị ban đầu không bị thay đổi. Bạn theo dõi ví dụ đơn giản sau:

class Vidu{  
 int data=50;  
  
 void change(int data){  
 data=data+100;//cac thay doi se chi o trong bien cuc bo  
 }  
     
 public static void main(String args[]){  
   Vidu op=new Vidu();  
  
   System.out.println("Truoc khi thay doi "+op.data);  
   op.change(500);  
   System.out.println("Sau khi thay doi "+op.data);  
  
 }  
}  

Chạy chương trình Java trên sẽ cho kết quả dạng:

Output:Truoc khi thay doi 50
       Sau khi thay doi 50	
Loading...

Ví dụ khác về gọi bởi giá trị trong Java

Trong gọi bởi tham chiếu, giá trị ban đầu bị thay đổi nếu chúng ta tạo thay đổi trong phương thức được gọi. Nếu chúng ta truyền đối tượng thay cho bất cứ giá trị kiểu gốc nào, thì giá trị ban đầu sẽ bị thay đổi. Trong ví dụ này, chúng ta đang truyền đối tượng như là giá trị. Bạn theo dõi ví dụ đơn giản sau:

class Vidu2{  
 int data=50;  
  
 void change(Vidu2 op){  
 op.data=op.data+100;//Cac thay doi se la trong bien instance  
 }  
     
    
 public static void main(String args[]){  
   Vidu2 op=new Vidu2();  
  
   System.out.println("Truoc khi thay doi "+op.data);  
   op.change(op);//truyen doi tuong  
   System.out.println("Sau khi thay doi "+op.data);  
  
 }  
}   
Loading...

Chạy chương trình Java trên sẽ cho kết quả dạng:

Output:Truoc khi thay doi 50
       Sau khi thay doi 150