简单看懂方法的参数传递

pankaj-patel-1366018-unsplash.jpg

方法的参数传递


一.方法的参数传递:

<1>参数分为哪几种?
1.实参;2.形参;

<2>什么是实参,什么是形参?
假设现在你有一支钢笔,钢笔的外壳就是形参,是不变的。而墨水则是实参,是需要用的。

<3>实参具体位置在哪里?形参位置具体在哪里?
下面看一段代码:

1. public class test1{
2.
3.   public static void main(String[] args){
4.           
5.           Test t1 = new Test();
6.           
7.          //s1 和 s2 是实参 
8.           int s1 = 1;
9.           int s2 = 2;
10.           
11.           System.out.println("s1:" + s1 + ", s2" + s2);
12.           
13.           //调用swap()方法时,传入实参的值
14.           t1.swap(s1,s2);
15.           
16.           System.out.println("s1:" + s1 + ", s2" + s2);
17.           
18.           /*swap(int s1,int s2) s1 和 s2 是形参
19.           *形参的命名是任意,也可以和实参一样。
20.           */
21.           public void swap(int s1,int s2){
22.                 
23.                 int temp = i;
24.                 i = j;
25.                 j = temp;
26.                 
27.           }
       

输出结果为:

s1:1, s2:2
s1:2, s2:1

总结:
1.形参:方法声明时,方法小括号内是形参。
2.实参:调用方法时实际传入参数的值。


二.规则:java中的参数传递机制:值传递机制

<1>形参是基本数据类型:将实参的值传递给形参的基本数据类型的变量

<2>形参是引用数据类型:将实参的引用类型变量的值(对应的堆空间的对象的首地址值)传递给形参的引用类型变量。

第一个形参是基本数据类型时,实参的数值传递传递给形参,上面的代码是一个案例了。


现在来说说第二个,当形参为引用数据类型的情况。

先举个栗子,便于读者理解:

小明和小华现在有同时共有一辆玩具车,可以把玩具车理解为对象首地址值共有可以理解为一个指针,小明和小华同时指向玩具车,而小明不喜欢玩具车轮子的型号,背着小华偷偷的把轮子型号换了。

这时小华不知道车轮被小明换了。轮子是玩具车的一部分,对象首地址值就是玩具车,轮子就是首地址值指向的数值,现在数值被改变了。

先看这段代码:

1.public class test2{
2.   
3.   //创建一个swap()方法,形参为DateSwap类型的 ds
4.   public void swap(DateSwap ds){
5.   
6.   int temp = ds.i;
7.   ds.i = ds.j;
8.   ds.j = ds.temp;
9.   
10.   
11.   }
12.   
13.   //创建一个静态类
14.   static void DateSwap{
15.   
16.     int i = 1;
17.     int j = 2;
18.   
19.     }
20.     
21.   //主方法main()
22.   public static void main(String[] args){
23.   
24.   //创建对象t1
25.   Test1  t1 = new Test1();
26.   
27.   DateSwap ds = new DateSwap();
28.   
29.   //调用swap()方法
30.   t1.swap(ds);
31.   
32.   System.out.println("ds.i" + ds.i + "ds.j" + ds.j);
33.   
34.  
35.   }
36.   
37.}
ED092BFF73EA705087577F184B86571A.png-92.9kB
ED092BFF73EA705087577F184B86571A.png-92.9kB

在栈区中开辟了两个方法,分别把main()看成小明,swap()看成小华,new出来的对象的首地址值看成玩具车,静态DateSwap类中初始化的 i 和 j 是轮子,现在把轮子型号做了个交换。

注意:

引用数据类型的值其中只要一改变,原值就会跟着改变,而基本数据类型是其中一个改变,原值不改变。

就像你去复印一份资料,复印件你怎么画都行,原件内容始终是不变的,而引用数据类型是,你拿去复印时,不小心被帮你复印的人弄了几笔上去,原件内容也就改变了。

s1 和 s2 是基本数据类型,s1 和 s2 被交换后,原来的s1 和 s2 保持不变,可以拿第一个代码对比第二个代码看。

如果你喜欢这篇文字,可关注微信公众号:wu_you_lT,有深度好文等你阅读哦!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,320评论 0 2
  • 函数 函数是执行特定任务的自包含代码块。给定函数一个名称作为标识,并在需要的时候通过调用其名称来执行任务。 Swi...
    BoyceC阅读 414评论 0 1
  • 前天上班的时候,和一群小朋友同事聊天,为什么叫她们小朋友同事呢,因为和我们这些踩在80后尾巴的人相比,她们都是一群...
    吃饭人阅读 233评论 4 0
  • 当你老了,头发白了......这首歌相信很多人听过,但是会唱的却寥寥无几! 时间总是跑得那么快,我们使劲...
    余小小207阅读 330评论 1 1
  • 活成什么样都可以,只要你自圆其说自得其乐。可你发了疯似地闹着哭着,我看到小时候的自己,稍有不顺就跺脚发泄,仿佛这样...
    霾鬼阅读 308评论 0 0