Java面向对象编程 -1.5
2024-09-04 15:58:49
对象引用传递分析
类本身属于引用传递类型,既然是引用传递类型,那么就牵扯到内存的引用传递
所谓的引用传递的本质:同一块堆内存空间可以被不同的栈内存所指向,也可以更换指向。
class Person{
int age;
String name;
public void intorduce() {
System.out.println("age= "+age+" name= "+name);
}
}
public class xxx {
public static void main(String[] args) {
Person per1 = new Person();
per1.age=17;
per1.name="sakura";
Person per2 = per1;//引用传递
per2.age=20;
per1.intorduce();
}
}
一个堆内存被两个栈内存所指向
per2.age=20;
就好比 一个人 有大名 高上 和小名 小高
高上被咬伤 小高肯定也受伤了
这个时候的引用传递是直接在主方法之中定义的,也可以通过方法实现引用传递处理。
class Person{
int age;
String name;
public void intorduce() {
System.out.println("age= "+age+" name= "+name);
}
}
public class xxx {
public static void main(String[] args) {
Person per = new Person();
per.age=17;
per.name="sakura";
change(per);
per.intorduce();
}
public static void change(Person person) {
person.age = 40;
}
}
与之前的差别最大的地方在于,此时的程序是将Person类的实例化对象(内存地址(数值))传递到了change()方法之中
由于我们传递的是一个Person类型,那么change()方法接收的也是Person类型。
引用传递可以发生在方法上,这个时候一定要观察方法的参数类型,同时也要观察方法的执行过程。
最新文章
- 手机端页面自适应之rem布局
- mina通信 demo
- tornado 学习笔记5 构建Tornado网站应用
- mybatis-java1234一
- android中将EditText改成不可编辑的状态
- 【转】android应用程序的安装方式与原理
- 关于OOM那些事儿
- 超详细cordova环境配置(windows)及实例
- myeclipse10 将一个java工程合并到web工程
- BZOJ3792: 跑步
- HttpHandler与HttpModule及实现文件下载
- HDU 5416 CRB and Tree
- Ansible二三事
- Java中遍历Map对象的方法
- Ext.grid.EditorGridPanel联动设置单元格是否可以编辑和背景色
- SQLServer数据库增删改查
- Centos7上搭建ftp服务器
- 安装过redis集群,重新做集群办法:
- ESXi安装时遇到不识别的硬件的处理
- MT【26】ln(1+x)的对数平均放缩
热门文章
- 【Python】【爬虫】爬取酷狗TOP500
- 每天进步一点点------Xilinx IP 内核
- Navicat Preminm for Linx
- Attribute ";resultType"; must be declared for element type ";update"; or ";insert";
- multiprocessing 多进程实现 生产者与消费者模型JoinableQueue
- 主席树板子 p2104
- windows CMakeLists.txt
- linux shell 正则表达式详解
- 每天进步一点点------基础实验_13_有限状态机 :Mealy型序列检测器
- 分段函数&;数学函数