简单说一下JAVA中的对象和对象引用

“万事万物皆对象”使我们常常听到的一句话,说到对象就要先说类,我们我一组具有相似特征或多做的事物可以抽象成一个类,那么对象则是类的一个实例,好比人作为一个类,你、我皆是人这种类里面的一个实例。

那么什么是对象的引用呢?对象和对象的引用完全两个不同的概念。在JAVA中尽管一切皆可以“看作”是对象,但操作的标识符实际是指向一个对象的"引用"

举个栗子。

Person person = new Person("张三");

在这里 person 是一个对象,是一个Person的实例;还是说,这里的person不是真正的对象。而是指对象所创建的对象的引用。

再举个栗子。

Person person;
person = new Person("张三");

这两行代码实现的功能同上边一行是一样的。我们知道,java中的new是在堆上创建对象用的,如果说person是一个对象的话,那么第二行代码为何要再次new呢?由此可见,person并不是所创建的对象,那么person是什么?上文中提到:"操作的标识符实际上是指向一个对象的引用",也就是说person是一个引用,是一个可以指向Person类对象的引用,真正的创建语句是右边的new Perosn("张三")。

再看一个栗子。

Person person;
person = new Person("张三");
person = new Person("李四");

 这里让person先指向了"张三"这个对象,然后又指向了李四这个对象,也就是说,这句话只是声明了一个Person类的引用,它可以指向任何的Perosn类的实例。

也就是说,一个引用可以指向多个对象。

那么同样的

Perosn person = new Perosn("张三");
Person person2 = person; 

person1和person2都指向了“张三这个对象”。

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值