import static java.lang.System.out;
class ValueTransmission {
public void changeVarValueImpossible(int a) {
a = 2;
}
public void changeObjRefImpossible(A obj) {
out.println("Obj对象引用改变前的id号:" + obj.getId());
obj = new A();
out.println("Obj对象引用改变后的id号:" + obj.getId());
}
public void changeObjDataPossible(A obj) {
obj.setNickName("取昵称是一门技术");
}
public static void main(String[] args) {
ValueTransmission vt = new ValueTransmission();
int a = 1;
out.println("函数外变量a的值(修改前):" + a);
vt.changeVarValueImpossible(a);
out.println("函数外变量a的值(修改后):" + a);
A aObj = new A();
out.println("aObj对象的id号(修改前):" + aObj.getId());
vt.changeObjRefImpossible(aObj);
out.println("aObj对象的id号(修改后):" + aObj.getId());
out.println("aObj对象的昵称(修改前):" + aObj.getNickName());
vt.changeObjDataPossible(aObj);
out.println("aObj对象的昵称(修改后):" + aObj.getNickName());
}
}
class A {
private int id;
private String nickName;
public static int objCount;
A() {
objCount++;
id = objCount;
nickName = "";
}
public int getId() {
return id;
}
public void setNickName(String name) {
nickName = name;
}
public String getNickName() {
return nickName;
}
}