理解return new A();

本文深入探讨了Java中对象与引用的概念,解释了'='操作符实际上是在传递对象的地址,而非赋值。通过实例说明了引用如何指向对象,以及在方法返回时使用new关键字的原因。
首先在网上查阅相关信息

A a1 = new A();
它代表A是类,a1是引用,a1不是对象,new A()才是对象,a1引用指向new A()这个对象。

在JAVA里,“=”不能被看成是一个赋值语句,它不是在把一个对象赋给另外一个对象,它的执行过程实质上是将右边对象的地址传给了左边的引用,使得左边的引用指向了右边的对象。JAVA表面上看起来没有指针,但它的引用其实质就是一个指针,引用里面存放的并不是对象,而是该对象的地址,使得该引用指向了对象。在JAVA里,“=”语句不应该被翻译成赋值语句,因为它所执行的确实不是一个赋值的过程,而是一个传地址的过程,被译成赋值语句会造成很多误解,译得不准确。

再如: A a2; 它代表A是类,a2是引用,a2不是对象,a2所指向的对象为空null;

再如: a2 = a1; 它代表,a2是引用,a1也是引用,a1所指向的对象的地址传给了a2(传址),使得a2和a1指向了同一对象。Person person=new Person() 这里person 可以理解为引用(借助内存地址来理解), 而person就是操作这个内存地址来操作这个对象的。

综上所述,可以简单的记为,在初始化时,“=”语句左边的是引用,右边new出来的是对象。
在后面的左右都是引用的“=”语句时,左右的引用同时指向了右边引用所指向的对象。

开始不是很理解其中含义 return new a();写成return a();不行吗?为什么要加 new 呢?

 

return 需要返回一个对象。 而 a();是方法,a();需要进行new 之后指向对象,并return返回。

https://blog.youkuaiyun.com/lb_383691051/article/details/46621009

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值