Java的变量赋值
下面展示的是基本数据类型的参数传递
package 类的重载;
/*
1、方法的形参的传递机制:值传递
1、形参:方法定义时,声明的小括号内的参数
2、实参:方法调用时,实际传给形参的参数
2、值传递机制:
如果参数是基本数据类型,此时实参赋给形参的是实参真是存储的数据值
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值
(引用型数据包括数组、对象、接口)
3.实例对象与局部变量的差别:
1.实例变量是声明在类内而不是方法中
2.局部变量是声明在方法中
3.局部变量没有默认值,使用前必须先初始化。而实例变量有默认数值,数字(包括char)的预设为0,boolean类型预设是false,对象的引用是null。
PS:方法的参数基本上和局部变量相同
*/
public class valueTransfer {
public static void main(String[] args) {
//交换两个值的操作
int m = 10;
int temp = m;
int n = 20;
valueTransfer test=new valueTransfer();
test.Swap(m,n);
System.out.println("2、m:" + m + ",n:" + n);
// m=n;
// n=temp;
// System.out.println("m:"+m+",n:"+n);
}
public void Swap(int m,int n){
int temp=m;
m=n;
n=temp;
System.out.println("1、m:" + m + ",n:" + n);
}
}
下面是引用型数据的形参的传递
package 类的重载;
public class valueTransfer2 {
public static void main(String[] args) {
Data data = new Data();
data.m = 10;
data.n = 20;
valueTransfer2 test = new valueTransfer2();
//将对象作为参数传递给方法swap()
test.swap(data);
System.out.println("2、m:" + data.m + ",n:" + data.n);
}
public void swap(Data data){
int temp=data.m;
data.m=data.n;
data.n=temp;
System.out.println("1、m:" +data.m + ",n:" +data.n);
}
}
class Data {
int m;
int n;
}
两种方式有什么结果,请大家自己上机体会二者的不i同