方法传参
Posted 威s威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方法传参相关的知识,希望对你有一定的参考价值。
关于方法传参:
(参数也叫 参变量 ,它是专属于方法体的局部变量!)
首先我想先说一个结论:基本数据类型作形参时,实参向形参传递的是值;引用数据类型作形参时传递的是
对象。(其实传递都是值,具体可参考http://www.cnblogs.com/wsw-blog/articles/my-bolgs-898558572.html)
我们知道在调用带参方法时需要按照该方法的形参变量列表将类型、顺序一 一对应的实参变量的值传递过去。
这就是方法的参数传递!
当基本数据类型作为形参时,无论形参变量在其所在的方法内被如何操作都不会对传值给他的实参变量有任 何影响!基本变量就好比存储数据的U盘,形参变量就是一个空U盘而实参变量就是一个存有数据的U盘。参数传递就是把有数据的U盘(实参)内的数据拷贝一份给空U盘(对形参变量初始化)。当你对空U盘(当然现在不是空的了)作删除、添加(其实就是对形参变量的重新赋值)操作时,并不会影响到拷贝数据给它的U盘(实参)内的数据!因为它们两个是两个完全独立的空间!一个空间内容的改变并不会 影响到另一个!
当引用数据类型作为形参时,其实是把作为实参的引用变量里储存的地址 (它指向对象所在堆内存的地址) 传给了作为形参的同类型的引用变量,所以这时它们两个指向的是一个堆内存,也就是说是一个对象。所以我们可以通过形参变量点出该对象的属性并对其进行修改!就好比A仓管员可以管理公司仓库,但是一个人管理仓库太累,公司又招了B仓管员。就是把A仓管员的权限赋给了B,这时他们俩谁都可以管理公司仓库(但他俩只能管理本公司仓库不能管理其他公司的仓库)。也就是说他们都是指向一个仓库!这里的仓管员A、B就是 仓库类型 引用的两个变量,而一个具体的公司仓库就是仓库类型的一个实例。我们可以通过仓管员(引用变量)知道仓库里有什么东西(就是student.name;)或者改变仓库里的东西(student.age = 20;)。仓管员拥有的是指向具体仓库的管理权限就是引用变量存储它所指向的类实例的地址。到了这里我们就明白了,其实引用变量最大的作用不是存值而是作为一个指针的作用!(貌似越说越复杂了,其实它本身就很复杂!如果还是不明白可以私信给我。)
以上是关于方法传参的主要内容,如果未能解决你的问题,请参考以下文章