Trước khi kết thành kim đan có 1 tâm ma mà anh em tu “tay” vướng phải là pass by value hay pass by reference
package javaapplication1;
import java.util.Scanner;
public class JavaApplication1 {
public static class sn{
private int v;
public sn(int i){v=i;}
public sn(){}
public int getv(){return v;}
public void setv(int i){v=i;}
}
public static void changei5i6_v2(sn i,sn j){
sn k=i;
i=j;j=k;
i.setv(3);
j.setv(4);
}
public static void changei5i6(sn i,sn j){
sn k=new sn();
k=i;
i=j;j=k;
}
public static void changei4(sn i){
sn j= new sn();
j.v=i.v;
j.setv(2);
}
public static void changei3(sn i){
sn j=new sn();
j=i;
j.setv(2);
}
public static void changei2(sn i){
i.setv(2);
}
public static void changei1(int i){
i=2;
}
public static void main(String[] args) {
//int
int i1=0;
changei1(i1);
System.out.println(i1);
//obj
sn i2= new sn(0);
changei2(i2);
System.out.println(i2.getv());
//obj i3
sn i3= new sn(0);
changei3(i3);
System.out.println(i3.getv());
//obj i4
sn i4= new sn(0);
changei4(i4);
System.out.println(i4.getv());
//obj i5 i6
sn i5=new sn(1);
sn i6= new sn(2);
changei5i6(i5,i6);
System.out.println(i5.getv()+";"+i6.getv());
//obj i5 i6 v2
changei5i6_v2(i5,i6);
System.out.println(i5.getv()+";"+i6.getv());
}
}
Đoán kết quả nào