调用方法时,传递给方法的变量如果是基本类型,传入到方法中后就是该方法的局部变量,在调用时会在内存中开辟新的空间去存储,所以对于参数名与成员变量一致的情况下,方法中改变的变量的值是与成员变量不冲突的,也就是不会影响到成员变量,除非使用this关键字来指向成员变量!下面是代码示例:
public class PerameterTrans {
int num;
public static void main(String[] args){
PerameterTrans p=new PerameterTrans();
p.num=1;
System.out.println(p.num);//1
p.add(p.num);
System.out.println(p.num);//1
p.add2(p.num);
System.out.println(p.num);//2
p.add3(p.num);
System.out.println(p.num);//3
}
public void add(int num){
num=num+1;//此处的num是局部变量,非类的成员变量,成员变量值不变
}
public void add2(int num){
this.num=num+1;//当参数变量名与成员变量名一样时,可以使用this关键字来指向成员变量
}
public void add3(int number){
num=number+1;//当参数变量名与成员变量名不一样时,可以不使用this关键字
}
}