一段关于对象引用的形象解释

关于变量的详细生动的解释 以故事的形式讲解变量,生动形象,让读者更深入的理解变量,以便灵活运用变量 立即下载

我们先看一段代码

class Dog {
  String name;
  
public static void main(String[] args) {
    
// 我知道这段代码就是让d指向了堆中的Dog对象,但书里说smalldog也指向了堆中的同一个Dog对象
    Dog d = new Dog();
    d.go(d);
  }

  
void go(Dog smalldog) {
    
// 是这里让smalldog也指向了Dog对象吗?明明没有等号嘛,谁能解析一下吗?
    
// 没有等号也能让smalldog指向Dog对象?我很笨的
    smalldog.setName("wangcai"); 
  }

  
void setName(String dogname) {
    name 
= dogname;
  }

}

引用变量d 
引用变量smalldog 

smalldog=d 
那么smalldog也指向d所指向的对象,是吗?那么我的这个推理,这个推理该用什么理论来解释呢,或者定义什么的,谁让我消化消化啊


我的解释: 
1 Dog 是一致狗 
2 我再一张纸上写了他的地址,从这个地址肯定能找到它。 这张纸叫d 
3 我朋友也想看看这个狗,我就又写了一张纸,一次性使用的,上面写的相同的地址,这张纸叫 smalldog 
4 我朋友根据smalldog的地址,找到了狗,并给狗改了名字 setName(); 
5 我朋友离开了,那个smalldog 纸片也就自动销毁了(smalldog 是一个函数变量) 
6 可是,我的那张纸d, 上面依然写着那个狗的地址 

7 请注意,我的纸 和 我朋友的纸是完全不同的2张纸,但是他们上面写的狗的地址是相同的。 

个人理解,引用就是复制了一份地址。







<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
Visual Studio 2015 插件开发 从入门到放弃(一) 必需知识:C#和Visual Studio (1)安装 Visual Studio 2015 的时候选择 Visual Studio 扩展性工具(Visual Studio Extensibility Tools)。对于已经安装好 Visual Studio 2015 的小伙伴,可以找VS2015的安装包,或者在程序与功能中找VS2015双击,在VS2015界面中选择 修改,再选择 阅读详情

相关推荐

从URDF到Gazebo:一个完整的ROS2机械臂仿真项目实战与避坑指南

本文提供了一个完整的ROS2机械臂仿真项目实战指南,详细讲解了从URDF建模、ROS2 Control配置、MoveIt2集成到Gazebo仿真的全流程。文章重点分享了URDF惯性参数设置、Gazebo插件选择、MoveIt2配置修正等关键步骤的避坑经验,帮助开发者快速搭建可用的六轴机械臂仿真环境,实现从静态模型到物理仿真的跨越。

weixin_29279153的博客 273

MySQL DATE类型详解:存储原理、优化技巧与实战案例

DATE类型是关系型数据库中处理日期数据的基础数据类型,采用3字节存储YYYY-MM-DD格式数据,范围从1000-01-01到9999-12-31。其核心原理在于无需时区转换的日期存储机制,适合需要精确日期的业务场景。在技术价值层面,合理使用DATE类型能避免VARCHAR存储带来的性能损耗和隐式转换问题。实际应用中需特别注意零日期(0000-00-00)处理和日期范围溢出问题,电商促销、金融交易等对日期敏感的系统尤其需要优化日期查询性能。通过建立函数索引、避免WHERE子句中使用日期函数等优化手段,可显

weixin_34393428的博客 507

告别糊涂账!用CKM3底表逻辑自建物料成本监控报表(含ABAP代码片段)

本文详细介绍了如何利用CKM3底表逻辑自建物料成本监控报表,解决标准报表无法穿透成本差异根源的问题。通过ABAP代码片段和四步架构法,帮助财务团队精准分析成本构成,优化成本核算批量处理,实现多维透视差异分析,提升成本监控效率。

weixin_30740295的博客 267

构造方法提示错误Duplicate modifier for the method XXX in type XXX

写代码时非常低级的错错误,当时没仔细看自己写的该方法,结果是该构造方法多写了权限修饰符,现记录如下: private final ExecutionEnvironment env; private final String jobId; private final CalJobParam.JdbcParam dataSink; public public IndicatorP...

LiHuiJUNMate的博客 9464

RP Fiber Power 版本

RP Fiber Power的版本历史 该软件一直受到多年来广泛的发展计划,这大大扩展了其功能,以及用户界面的质量。 V1 这是第1个版本。 它仅限于光纤激光器和放大器的连续波计算,并且只能通过脚本进行控制。 V2 版本2引入了交互式表单。 至少对于更简单的模拟,现在可以简单地通过填写表单来工作,而V1必须通过脚本来控制。 例如,屏幕截图显示了输入某些信号参数的表单: 当您基于这些表单执行计算时,程序将根据您的表单输入自动编写脚本文件,然后执行该脚本。如果您需要编写脚本以获得更大的灵活性,可以稍后查看该脚

Asdmath的博客 2431

TPC好像是这么回事儿

TPC(Transmit Power Control)发送功率控制,本觉得就是控制一下发送功率,原理很简单,但看原版协议死活每搞懂什么意思,恼羞成怒!!!! 后来又看了一些贴子和cisco的相关功能介绍,再回头看协议,好像是这么一回事: 1、所谓TPC,是AP控制STA的发送功率的一种手段。在802.11d中,已定义了使用Country Element传递区域无线通信规定的信道和最大发送功率信息: 通过获取这些信息,STA可以确定自己应该遵守什么规则,可以用什么发送功率在哪些信道上通信。 2

两只勤劳的蜜蜂 8627

C语言 变量与指针 形象化解释

初学者可能觉得C语言指针难以理解,而指针的确是C的精华所在,所以必须弄清它的本质 我一直喜欢把程序设计抽象化的定义具体类比到实例来理解,这样更容易解释和说明,别人也容易听懂 这次先拿指针与引用开刀吧!我们把变量具体化成生活中的地址来解释 首先来个声明: int stuAddr = 5; int &hustStuAddr = stuAddr; printf("%s",&stuAddr

tianhaoray的专栏 1303

高数 | 【极限与等价无穷小】两个重要极限 & 经典错误 & 什么情况下求极限可以直接带入

一. 第一个重要极限 二. 第二个重要极限 三. 导数定义式 全文见【高等数学】两个重要的极限 - 知乎

"You are worthy! You can do it!" 6万+

JAVA中在类中声明方法的时,public void dog和直接void dog有什么区别?

public void dog 称之为公共的。被它修饰的类,属性和方法不仅可以跨类访问, 而且允许跨包(package)访问。 void dog没有加任何修饰符,我们通常说这是默认的访问模式。这种访问模式只允许在同一个包中进行访问。 除了这两个修饰符外,还有private和protected两种修饰符。 private被称为是私有的。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不

3947

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】

打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。

CodingCos的博客 2046

提交 ieee 手稿出现:Do not include the Reviewer PDF with my submission 怎么办

IEEE投稿Reviewer PDF选项说明 投稿时出现的"Do not include the Reviewer PDF with my submission"选项控制是否附带评审专用PDF文件。Reviewer PDF是系统自动生成包含所有投稿材料的完整PDF,用于同行评审。建议保持默认不勾选状态,除非确认编辑部不需要该文件,否则可能影响审稿流程。勾选表示不附带此PDF,不勾选则会正常生成并提交该评审文件。

ZhangJiqun&191cm&85kg 2188

(转)一段关于对象引用的形象解释

classDog{ Stringname; publicstaticvoidmain(String[]args){ Dogd=newDog();//我知道这段代码就是让d指向了堆中的Dog对象,但书里说smalldog也指向了堆中的同一个Dog对象 d.go(d); } voidgo(D...

weixin_30674525的博客 87

高频网络协议与编程IO相关面试基本问题和知识点整理

网络IO相关基本高频面试基本问题和知识点整合

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 173万+

对象实体和对象引用的区别

初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: class Vehicle { int passengers; int fuelcap; int mpg; } 有了这个模板,就可以用它来创建对象: Vehicle veh1 = new Vehicle(); 通常把

IT圈的01羊的博客 2787

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

对象引用变量

    Vehicle veh1 = new Vehicle(); veh1是对象引用变量,它不是对象的容器,而是类似于指向对象的指针,或者可以说是地址。对象只会存在垃圾回收的堆上。     Vehicle veh1 = new Vehicle(); 代表取得Vehicle对象的方法,以字节形式,放进引用变量veh1中。而对象本身没有放进变量中。不同于基本数据类型 byte x = 7; 代表数字...

子衿_青青的博客 1700

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java对象与对象引用变量

Java对象及其引用 先搞清楚什么是堆,什么是栈。 Java开辟了两类存储区域,对比二者的特点 存储区域 存储内容 优点 缺点 回收 栈 基本类型的变量和对象的引用变量 存取速度比堆要快,仅次于寄存器,栈数据可以共享 存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量 当超过变量的作用域后,Java会自动释放...

an-ping的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JAVA 对象引用,以及对象赋值

关键字: java对象 引用  Java对象及其引用  关于对象与引用之间的一些基本概念。         初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,          那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋

yafeil的博客 298

java对象引用和回收

Java对象及其引用 摘自http://dev.youkuaiyun.com/author/beepbug/f5c70b05579f46d4996ce9da4f75dbc0.html 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,

hanxinis的专栏 1288

对象引用与对象的区别

订阅     初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。        为便于说明,我们先定义一个简单的类:        class Vehicle

suling1022的专栏 273

你真的明白吗?--Java对象以及对象引用

前言:生活百般滋味,人生需要笑对。 工作了一段时间,对java对象和对象引用之前老是存在分不清的情况,为了更好的理解java面向对象思想,我想彻底弄清它。 为了便于说明我们来定义一个类 class Animal{            String name;           int size;            } 有了上述的类,那么我们可以创建一个对象    A

wu371894545的博客 645

java允许对象引用自己_java 中 对象引用与对象的区别 (转)

初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。为便于说明,我们先定义一个简单的类:class Vehicle {int passengers;int fuelcap;int mpg;}有了这...

weixin_39874350的博客 128

Java对象及对象引用变量

Java对象及其引用 关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一...

chengpuke7520的博客 123

对象引用与对象的区别以及堆栈的区别

初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: class Vehicle { int passengers;...

weixin_30925411的博客 92
上一篇: 关于数据库连接池的形象比喻
下一篇: 关于接口的理解问题
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值