参数传递
1、什么是参数传递
参数传递就像是一个物流公司一样,要将别人的东西运送到他需要的地方。而参数的传递
也是将你定义好的属性或对象传到
你需要的地方,促使程序达到你所期望的目的。
2、参数(数据类型)的定义
在java中总体的分为两种数据类型:
1、基本数据类型(有八大基本数据类型):
byte型
int型
short型
long型
float型
boolean型
double型
char型
2、引用数据类型:
java定义好的一些类:String、image等
写程序时自己定义的一些类等
3、传参的方法
参数的传递方法在java中只有两个种参数传递的方法,第一是写一个构造方法进行传参;第二个就是写一个get/set方法进行传参。这就像是我们要外出旅游,我们可以选择坐汽车、坐火车或者是坐飞机等交通工具,这些交通工具将我们承载到我们需要到的地方。这些交通工具就像是java中的传参的方法。
4、参数传递的种类
值传递:
一些基本的数据类型与引用变量一般都是用的值传递的方式
引用传递:
一般都是用一些自定的名字来存放指向的数据的首地址
5、值传递的
内存分析:
我们先定义一个int X=10的变量,在定义一个int X1的变量,先将xz中的值赋给x1(x1=x);
然后我们在将x1中重新赋一个值20(x1=20);这是我们再来看x的值是否发生变化。
内存分析图:
图 1 值传递图示
结论:x的值无变化,值传递的特性就是将本身的值赋给x1,因此x1的变化对于x来说没有任何影响。
6、引用传递的内存分析:
我们先定义一个类,类中的定义有属性、方法等;然后对于我们先定义好的一个类去new 两个对象 stu与stu1;再然后我们将stu赋值给stu1(stu=stu1);我们再改变stu中的某一个属性值;最后观察stu1的变化
引用传递的内存图:
图 2 引用传递
结论: stu1的输出属性是有变化的,引用传递的特性就是,没定义的对象名中存放的是指向堆空间的地址,因此stu=stu1的语句执行后,stu1与stu指向了同一个堆空间,所以此堆空间的值的改变是会引起两个对象名的改变。
7、String类的参数传递的分析:
String类是一个比较特殊的类,他只能算是半个值传递。
我们先定义两个String类型的数据str与str1 ,分别赋值(str=”abc”;str1=”123”);当我们将str赋值给str1(str1=str)之后,我们再改变str中的值,最后看str1的输出变化。
结论:只有str中的值变化,而str1中的值没有变化。