/*
参数的值传递
基本数据类型:当将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变
引用数据类型:当将基本数据类型作为参数,传递给方法,方法运行结束后,原属性值会发生改变(传递的是地址值)
*/
class MtthodTest
{
public static void main(String[] args)
{
/*int a=10;
int b=20;
add(a,b);
System.out.println(" a="+a+" b="+b);//a=10,b=20*/
/*//创建对象(也是变量)
Number num=new Number();
num.a=10;
num.b=20;
//变量格式: 数据类型 变量名=值;
Person p;
p=new Person();*/
Number num=new Number();
num.a=10;
num.b=20;
System.out.println("main方法调用add方法前:num.a="+num.a+"num.b"+num.b);//10 20
add(num);
System.out.println("main方法调用add方法后:num.a="+num.a+"num.b"+num.b);//num.a=? num.b=? 11 22
}
public static void add(int a,int b){
a+=1;
b+=2;
}
public static void add(Number num){//相当于:Number num=new Number();
System.out.println("add方法运行前:num.a="+num.a+"num.b"+num.b);//10 20
num.a+=1;//属性
num.b+=2;
System.out.println("add方法运行后:num.a="+num.a+"num.b"+num.b);//11 22
}
}
class Number
{
//属性
int a;
int b;
}
class Person
{
}
引用数据类型值传递内存分析
例: