Java面向对象编程 -1.5
对象引用传递分析
类本身属于引用传递类型,既然是引用传递类型,那么就牵扯到内存的引用传递
所谓的引用传递的本质:同一块堆内存空间可以被不同的栈内存所指向,也可以更换指向。
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类型。

引用传递可以发生在方法上,这个时候一定要观察方法的参数类型,同时也要观察方法的执行过程。
Java面向对象编程 -1.5的更多相关文章
- Java面向对象编程基础
一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...
- java 面向对象编程。。。。
经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...
- 《Java面向对象编程》
<Java面向对象编程> 第11章 对象的生命周期 11.1 创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...
- JAVA面向对象编程课程设计——网络版单机斗地主
一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...
- JAVA面向对象编程课程设计——web版斗地主
一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...
- java面向对象编程知识点总结
一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...
- Java面向对象编程(一)
由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...
- JAVA学习(五):Java面向对象编程基础
Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...
- (一)如何理解java面向对象编程
哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...
- java面向对象编程--第九章 多态和抽象
9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它 ...
随机推荐
- 使用表单对象时,报错 form is undefine
先看例子 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- 剑指offer 面试题36.二叉搜索树与双向链表
中序递归,一个pre节点记录前一个节点 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; Tre ...
- Flask 教程 第十五章:优化应用结构
本文翻译自The Flask Mega-Tutorial Part XV: A Better Application Structure 这是Flask Mega-Tutorial系列的第十五部分,我 ...
- tomcat查看当前内存
查看运行中的tomcat内存非常简单,只需运行一下此界面就可以看到. <html> <head><meta http-equiv="Content-Type&q ...
- Swiper 移动端全屏轮播图效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- promise封装ajax
promise的含义(本身不是异步,是封装异步操作的容器,统一异步的标准) promise对象的特点:对象的状态不受外界影响:一旦状态改变,就不会再变,任何时候都可以得到这个结果. function ...
- SpringMVC:ssm整合练习一
西部开源-秦疆老师:MyBatis,Spring,SpringMVC 整合练习一 , 秦老师交流Q群号: 664386224 未授权禁止转载!编辑不易 , 转发请注明出处!防君子不防小人,共勉! ss ...
- git按需过滤提交文件的一个细节
问题场景 用git管理代码时,作为git小白的我总会遇到一些无法理解的问题,在请教了一些高手后终于解开了疑惑,参考以下场景: 1.比如我们已在电脑1上完成用vs编辑项目.添加.提交到服务器的完整流程, ...
- linux下使用bower时提示bower ESUDO Cannot be run with sudo解决办法
今天准备在使用bower安装一些东西的时候,废了老半天劲,因为需要node环境以及bower平台,安装不顺利,通过百度,最解决了这些问题: 在执行bower命令的时候,总是会报错,原来需要在命令后添加 ...
- buuctf admin writeup
熟悉的登陆注册页面,结合结合题目admin的提示,想到是通过修改admin用户密码或伪造admin身份的方式来以admin账户.查看源码,看到了一个hint: 下载下来,是靶场的源码首先尝试抓包分析, ...