黑马程序员技术交流社区

标题: 关于this在构造函数中调用的问题 [打印本页]

作者: 严晗哲    时间: 2015-5-7 23:08
标题: 关于this在构造函数中调用的问题
当this在构造函数中被调用去访问其他构造函数时内存会产生对象么?如果产生那么会不会产生两个对象,如果不会,那他的代码又是在哪个内存区域中被执行的?

当在两个构造方法中使用this互相调用时,是死循环么?
作者: jinlong0999    时间: 2015-5-7 23:42
没懂,我的理解是this就是对象,而且是当前对象
作者: 魔蝎座    时间: 2015-5-8 00:00
你把我绕混了,没懂
作者: 魔蝎座    时间: 2015-5-8 00:01
你把我绕混了,没懂
作者: 396460221    时间: 2015-5-8 11:10
只会产生一个对象。调用只是引用的变化,可能是1个参数构造函数和2个构造函数的事,对象是只有一个,参数只是属性的增加。两个构造函数互相调用,肯定是死循环
作者: ninjaes    时间: 2015-5-8 11:24
没看懂
作者: 彭越    时间: 2015-5-8 12:30
产生一个对象,this指的是当前对象。
作者: 武维京    时间: 2015-5-20 00:10
来看看  !!!!!
作者: 林思奇    时间: 2015-5-20 00:33
后面那个 会报错
作者: zq19910303    时间: 2015-5-20 08:18
构造函数是用来初始化成员变量的,只有可能互相复写,不会产生互相调用的情况
作者: 黯然残影    时间: 2015-5-20 22:00
不会产生俩个对象,是死循环
作者: L番茄X    时间: 2015-5-20 22:14
我记得谁调用this,就是谁.
作者: sss18310878521    时间: 2015-5-20 22:35
this只代表当前对象,两个构造函数之间能互相调吗?
作者: 二大爷    时间: 2015-5-20 22:47
   this代表其所在方法所属对象的引用,哪个对象调用方法,方法内部就有一个隐含的this代表这个对象(谁调用,this就代表谁)
作者: as604049322    时间: 2015-5-20 23:27
当在两个构造方法中使用this互相调用时,编译无法通过,这被称为构造函数的递归调用
作者: zlynnb2015    时间: 2015-5-20 23:40
这必定是死循环
作者: 谷歌    时间: 2015-5-20 23:42
真正开辟堆内存的是new这个关键字。不是说我执行一个构造函数就产生一个对象。构造函数只是在引用指向之前对这个堆内存进行初始化操作。
作者: 飘过的云    时间: 2015-5-20 23:48
首先,产生多少个对象 看多少了new,当然单例除外。
this是所在方法所在对象的引用。
因此,this访问其他构造函数,也是本类中的构造函数,
for example
Person(){}
Person(String name){this.name=name}
Person(String name,int age){this(name);this.age=age;}
作者: 王建伟    时间: 2015-5-20 23:49
this就是指的当前的对象吧,还能指别的对象?
作者: 守株人    时间: 2015-5-20 23:57
求解答。。。。。
作者: !85684009ex    时间: 2015-5-21 00:23
不会!他是当前对象引用!是栈空间指向方法!
作者: tanzhixue    时间: 2015-5-21 00:46
只有new才会产生对象  方法都是在方法区执行  会出现死循环
作者: zhubingg    时间: 2015-5-28 23:57
唉 楼主的好好看书啦 ! 书上写的很清楚啊
作者: 途中ms前进    时间: 2015-5-29 00:05
this被谁调用代表谁




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2