Java 对象与引用 绝对理解!(初学者必看)

本文详细介绍了Java中的对象和引用概念,包括对象作为类实例化的特性,引用指向对象的规则,以及引用的赋值、比较运算符。强调了解引用运算的重要性,解释了引用的共享特性,并通过实例分析了二维数组的操作。最后,通过具体示例深入探讨了引用操作可能遇到的问题,帮助读者更好地理解Java中的对象引用机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先

什么是对象:是类的实例化。是一组相关数据的组织单位(状态)围绕这组数据的各种操作(方法)

【数据(属性)有两种类型:基本类型和引用类型】

什么又是引用?:用来操作对象。

基本要点【以下图片内容○代表“引用”,□代表“对象”】

1·引用指向对象

a.同一时刻,要么指向对象,要
么不指向对象(null)
b.对象不能指向引用,也没有对
象指向对象一说。
在这里插入图片描述
在这里插入图片描述
可以将引用理解为《火影忍者》中的傀儡术,勘九郎利用查克拉线来控制蝎的傀儡,使其发动攻击。引用—>勘九郎使用查克拉线,对象就是—>蝎。

2、引用支持的运算符有哪些?

仅有:【a.赋值运算符“=” ,b.比较运算符 “==、!=”】这三个运算符。

3、解引用运算符

通过引用操作对象——来获取对象中的值/修改对象中的数据。
例:int [] a=new int []{1,2,3,4}
“.”:通过a.length来获取a所指向对象的长度。
“[ ]”:通过a[0]来获取a所指向对象第零号下标的值:1。
在这里插入图片描述
切记:如果解引用时,引用不指向任何对象(null),就会报错。例如:a指向null时,a.length,会出现NullpointerException“索引越界”的异常提示。

4、引用具备“共享”的特性

eg:long [] a={1,2,3,4,5};
long [] b=a //让a、b指向同一个对象。
a[0]=99; //通过a解引用修改了对象中的数据
System.out.println(b[0])显示出的是什么值? 答案:99

解析:因为a与b同时指向同一个对象,通过a解引用修改对象数据后,再通过b对其对象数据进行获取,获取得到的结果就是99。

初步了解之后,让我们通过二维数组来深入了解对象与引用。

【预备知识:java中的数据类型(2种)1、基本数据类型(byte/short/int/long/char/float/double/boolean)2、引用数据类型】
数组:long []是引用类型,所有的数组类型都是引用类型。数组的元素,长度信息都放在对象中(数组对象)

long []a=null;在这里插入图片描述
a=new long[]{1,2,3,4,5};
在这里插入图片描述
long []b=a;
在这里插入图片描述
long[][] a=null

long[][] a=new long[5][ ]:定义了一个元素类型是long[](引用类型)的数组,数组长度是5。
在这里插入图片描述
补充知识:【变量的默认值:是零的变形】
数值类型 默认值——0
boolean 默认值——false
引用类型 默认值——null

eg:long[]a=new long[5];默认数组对象中的元素是0;
此时long[][]a=new long[5][];理解为:默认数组对象中的元素是long[],该数组长度是5;
所以,a[0]=a[1]=a[2]=a[3]=a[4]=null,即所有的元素(引用)不指向任何对象。

想一想:
a[0][0]=10,执行该操作时,会发生什么?

解析:通过a引用,找到其指向的对象。
a[0]得到其下标为0的元素——long[]——不指向任何对象
所以通过a[0][0]找到其指向对象的元素,将其修改为10,会报错!是因为a[0]==null,所以无法进行对指向空的引用进行解引用。

接下来再通过几个例子来深入理解一下:

例1:试画出以下改动后的图:
a[0]=new long[3];
a[1]=new long[3];
a[1][2]=99;
在这里插入图片描述

例2:画出如下二维数组的效果图
在这里插入图片描述
答案:
在这里插入图片描述
拓展问题:
long [] t=a[2];
a[2]=a[3];
a[3]=t;
System.out.println(Arrays.toString(t));
结果的效果图:
在这里插入图片描述

谢谢大家观看,若有知识点错误请评论中指出,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值