Chapter3_操作符_方法调用中的别名问题
接下来展示方法调用中的别名问题,方法调用中的别名问题指的是,将一个对对象的引用传递给某一个方法时,方法操作的是这一个特定的引用而不是这个引用的拷贝。
1 class Person{ 2 float height; 3 } 4 5 public class Test { 6 //方法调用的别名机制 7 static void grow1(float height){ 8 height += 1; 9 } 10 11 static void grow2(Person p){ 12 p.height += 1; 13 } 14 15 public static void main(String[] args){ 16 Person p = new Person(); 17 p.height = 180; 18 System.out.println(p.height); 19 grow1(p.height); 20 System.out.println(p.height); 21 grow2(p); 22 System.out.println(p.height); 23 24 } 25 }
输出:
180.0 180.0 181.0
从输出可以看出,grow1方法的原型定义为static void grow1(float height),传递的值是一个整型变量,操作的是传进来的值的拷贝(因为是基本数据类型,这一点和C等一致),对象的引用并没有被使用到。而grow2方法的原型定义为static void grow2(Person p),传递的值是一个对象的引用,这种情况下方法会直接对这个对象进行操作,所以我们看到这个对象的成员变量改变了。
转载于:https://www.cnblogs.com/buaa-zzy/p/7138407.html
Chapter3_操作符_方法调用中的别名问题相关推荐
- 方法调用中的别名问题
2019独角兽企业重金招聘Python工程师标准>>> class Letter {char c; }public class PassObject {static void f(L ...
- JAVA方法调用中的解析与分派
JAVA方法调用中的解析与分派 本文算是<深入理解JVM>的读书笔记,参考书中的相关代码示例,从字节码指令角度看看解析与分派的区别. 方法调用,其实就是要回答一个问题:JVM在执行一个方法 ...
- 【BUG】@Transactional注解在同类方法调用中不生效
后台代码 今天做系统开发的时候,遇到了一个BUG:@Transactional注解在同类方法调用中不生效 代码如下: /*** @description: 快递100接口服务类* @date 2021 ...
- 安卓一个方法多处调用_一个隐藏在方法集和方法调用中且易被忽略的小细节
来自公众号:新世界杂货铺 作为一个长期从事Go语言开发的程序猿,笔者不敢说自己是老油条但也勉强算一个小油条.然而就在今天,笔者研究TLS/SSL握手源码的时候,突然灵光一闪,想到了一个和自己认知不符的 ...
- js 调用另一个类的方法_一个隐藏在方法集和方法调用中且易被忽略的小细节
来自公众号:新世界杂货铺 作为一个长期从事Go语言开发的程序猿,笔者不敢说自己是老油条但也勉强算一个小油条.然而就在今天,笔者研究TLS/SSL握手源码的时候,突然灵光一闪,想到了一个和自己认知不符的 ...
- java方法中与参数怎么调用_与Java方法调用中的类型参数有关的问题
Java 8的Java语言规范在"示例4.11-1.类型的用法"中提供了一个带有类型实参的方法调用示例: void loop(S s) { this.loop(s); // is ...
- ruby三元操作符_在Ruby中使用操作符将元素添加到数组实例中
ruby三元操作符 In the previous articles, we have gone through ways through which we can create Array inst ...
- java的方法调用中分不清_java中不太清晰的知识点
一.什么包需要导入,什么包不需要导入 1.java.lang包的内容是自动导入的,不需要手动导入,其它必须手动导入. 2.java.io.OutputStreamWrite已经是完整的类,无需再导入, ...
- java 异常对象_在java中的异常处理中的异常对象是什么
展开全部 Exception类以及他的子类 的一个实例对象 比如32313133353236313431303231363533e58685e5aeb931333264633563 常见异常 1. j ...
最新文章
- 【IEEE出版-EI检索】第三届IEEE信息与计算机前沿技术国际学术会议
- 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )
- Python3 实现用户登陆,输入三次密码
- python列拼接dataframe_如何将两个dataframe中的两列合并为新dataframe(pandas)的一列?...
- Oracle with语句的用法
- 建立能持续处理请求的Server端改造
- python selenium span内容读取_【程仁智推荐】Selenium自动化测试入门
- js html异步加载的属性,异步加载JS的五种方式
- C语言显示相位的程序,【图片】求助大佬用c语言帮忙编写下程序【c程序吧】_百度贴吧...
- 今天和朋友去参观一家做电商创业公司
- 很多餐饮店都会倒闭,最主要的是有2大原因
- javascript基础知识总结
- 隐马尔可夫模型通俗导论
- linux mysql 相关操作、问题
- B站韩顺平java学习笔记(二十)-- 网络编程 章节
- 说到建模,如果不提这几个软件的话……
- 裂变!裂变!这里有一份完整的微信流量裂变指南
- win10计算器_30年后终更新!新一代Win10记事本详细体验
- 7.Flink实时项目之独立访客开发
- docker docker compose 云效流水线
热门文章
- -f shell 模糊匹配_生产力工具:shell 与 Bash 脚本
- irobot扫地机器人 电压_iRobot评测!扫地机器人究竟能有多好用?
- 【视频课】Pytorch模型分析进阶(可视化,参数量与计算量,计算速度)
- 全球及中国操纵杆控制系统行业应用动态与十四五形势分析报告2022版
- 中国镍氢电池行业产销状况及竞争格局咨询报告2021-2027年版
- 全球及中国台式破壁机行业销售模式及市场需求份额调研报告2021-2027年
- 中国乙二醇型汽车防冻液市场运营能力分析与投资战略规划研究报告2022-2028年版
- 【转】data和attr的用法与区别
- hive sql 学习笔记
- Django后台admin的使用