当前位置: 首页 > news >正文

开源做网站需要申请账号吗营销策划咨询机构

开源做网站需要申请账号吗,营销策划咨询机构,wordpress增加分享,做室内效果图网站2019独角兽企业重金招聘Python工程师标准>>> Java的方法参数传递是值传递还是引用传递?对于基本类型和对象来说,都会发生什么情况? 答案是Java只有值传递,因为Java只有值传递,因此在改变形参的值的时候&…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Java的方法参数传递是值传递还是引用传递?对于基本类型和对象来说,都会发生什么情况?

答案是Java只有值传递,因为Java只有值传递,因此在改变形参的值的时候,实参是不会因此而改变的。这一点从下面这个小程序可以很明显的看出来。

public class Main
{public static void main(String[] args){int a = 2;Object object = new Object();System.out.println(a + ":" + object);change(a, object);System.out.println(a + ":" + object);}public static void change(int a,Object object){a = 1;object = new Object();}
}

 

我们在方法当中改变形参的值,之后再次输出两个实参的值,会发现它们无任何变化。

 

这就足以说明Java只有值传递了,无论是对象还是基本类型,改变形参的值不会反应到实参上面去,这也正是值传递的奥义所在。

 

对于基本类型来说,这一点比较明显,不过对于对象来讲,很多猿友会有误解。认为我们在方法里改变形参对象属性的值,是会反映到实参上面去的,因此部分猿友认为这就是引用传递。

 

首先LZ要强调的是,上面也说了,我们只是改变形参对象属性的值,反映到实参上面去的,而不是真的改变了实参的值,也就是说实参引用的对象依然是原来的对象,只不过对象里的属性值改变了而已。

 

针对上面这一点,我们使用下面这个程序来说明。

public class Main
{public static void main(String[] args){int a = 2;Entity entity = new Entity();entity.a = 100;System.out.println(a + ":" + entity);System.out.println(entity.a);change(a, entity);System.out.println(a + ":" + entity);System.out.println(entity.a);}public static void change(int a,Entity entity){a = 1;entity.a = 200;}
}
class Entity{int a;
}

 

我们在方法里改变了entity对象的属性值为200,我们来看一下结果。

可以看到,实参对象的值依然没有改变,只是属性值变了而已,因此这依旧是值传递的范围。为了说明这个区别,我们来看下真正的引用传递。由于Java当中不存在引用传递,因此LZ借用C/C++来让各位看下真正的引用传递是什么效果。

#include <stdio.h> class Entity{ public: int a; Entity(){}; }; void change(int &a,Entity *&entity);int main(){int a = 2;Entity *entity = new Entity();printf("%d:%p\n",a,entity);change(a, entity);printf("%d:%p\n",a,entity);
}void change(int &a,Entity *&entity){a = 1;entity = new Entity();
}

尽量保持和Java的第一个程序是一样的结构,只不过C/C++中没有现成的Object对象,因此这里使用Entity对象代替,这样便于各位理解。我们来看下结果,结果会发现引用传递的时候,在方法里改变形参的值会直接反应到实参上面去。

 

原文作者(左潇龙)链接:https://blog.csdn.net/zuoxiaolong8810/article/details/65441606

转载于:https://my.oschina.net/u/3687664/blog/2875998

http://www.lbrq.cn/news/2413621.html

相关文章:

  • 做高端网站公司网络营销平台排名
  • 阜阳 做网站电商网店
  • 网页微信版官网登录不了百度seo2022
  • 建设项目查询网站搜索引擎都有哪些
  • icp备案网站建设方案书优化关键词首页排行榜
  • 建设银行办信用卡网站首页seo查询优化
  • 动态网站如何维护广州seo网络优化公司
  • 海阳做网站深圳seo优化培训
  • 企业网站建设物美价廉百度百度一下
  • 帝国做网站互联网营销师培训教程
  • 做图素材的网站有哪些互联网营销方案策划
  • 通过apache建设网站宁波网络营销推广咨询报价
  • 做sgs认证公司网站佛山全网营销推广
  • 自己做网站怎么让字体居中nba中国官方网站
  • 长春高铁建站低价刷赞网站推广
  • 网站建设方案功能天津优化公司
  • 网站建设收费标准讯息云南网络推广公司排名
  • 5种有效增加网站流量长沙官网seo服务
  • 郑州网站建设网站推广拓客最有效方案
  • 怎么做虚拟币网站黑龙江最新疫情
  • 做的网站显示不了背景图片信息流优化师简历怎么写
  • 通栏式网站全国最新实时大数据
  • 网站建设公司 温州广告营销
  • 东莞莞城网站建设肇庆seo排名外包
  • 做服装有哪些好的网站有哪些方面苏州疫情最新情况
  • 天涯网站建设路小学线上营销推广公司
  • 简单的asp网站源码东莞软文推广
  • 手机app下载软件英文外链seo兼职
  • 宁波在线制作网站湖北网站seo策划
  • 平板做网站服务器台州seo排名外包
  • 微信小程序服务端快速对接指南(java版)
  • 【Lua】多脚本引用
  • Unity笔记——Unity 封装方法指南
  • 30天打牢数模基础-K均值聚类
  • 滤波电路Multisim电路仿真实验汇总——硬件工程师笔记
  • 【Python库包】Gurobi-Optimize (求解 MIP) 安装