A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵太云   /  2013-1-3 21:12  /  4383 人查看  /  40 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

gaoyang525445 发表于 2013-1-3 22:17
你的var是私有的,不能直接赋值,只能使用有参构造器赋值或者使用set,
第一种:类 p=new 类;p。setVar ...

Thank you !:victory:
回复 使用道具 举报
刘文超 发表于 2013-1-3 22:11
我认为2调用了1构造初始化了id,自己再初始化了name、构造函数结束了,才叫”完成“创建对象。。。
我认 ...

恩,谢了!!!!1:kiss:
回复 使用道具 举报
默认初始化。
显示初始化。
调用构造代码块
调用构造函数进行初始化。

理解了这些 你的问题就解决了   我感觉你和我一样 都是新人  问都没问明白
回复 使用道具 举报
默认初始化。
显示初始化。
调用构造代码块
调用构造函数进行初始化。

理解了这些 你的问题就解决了   我感觉你和我一样 都是新人  问都没问明白

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 陈丽莉 于 2013-1-5 15:35 编辑

构造函数,是和类名同名的函数,可重载,用于给对应的对象进行初始化。比如你的程序里有public Test(){}和 public Test (int var){this();this.var=var;}这两个构造函数,当执行new Test(88)时,调用的是第二个有且只有一个int参数的构造函数;

this()用于构造函数间互相调用,并不代表它本身是构造函数,因为参数为空,所以调用的是public Test(){},因为是在第二个构造函数中调用的第一个构造函数,所以作用的都是同一个对象。

this.var=var的意思是new Test(88)这个匿名对象的var值为88.关于用this赋值,老师视频中的原话是:哪个对象在调用this所在函数,this就代表哪个对象。

也就是说,虽然一共调用了两个构造函数,但都是作用于同一个对象。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
恩。。。。
回复 使用道具 举报
陈丽莉 发表于 2013-1-4 15:33
构造函数,是和类名同名的函数,可重载,用于给对应的对象进行初始化。比如你的程序里有public Test(){}和  ...

谢了。。。。。。。。
回复 使用道具 举报
陈丽莉 发表于 2013-1-4 15:33
构造函数,是和类名同名的函数,可重载,用于给对应的对象进行初始化。比如你的程序里有public Test(){}和  ...

问个题外的。。。。。。。。。如何将【未解决】标识为【已解决】?????????
回复 使用道具 举报
呵呵,,,,需要的就是技术分。。。。。。。。。。。。。。。。。。。。。。。:victory:
回复 使用道具 举报
你好
不是创建了两个对象
调用有参数的构造函数初始化的时候又调用了无参构造函数,你的无参构造函数什么都没做,你的初始化动作是在有参数的构造函数中进行的。
回复 使用道具 举报
何竹冬 发表于 2013-1-6 18:18
你好
不是创建了两个对象
调用有参数的构造函数初始化的时候又调用了无参构造函数,你的无参构造函数什么都 ...

问个题外的。。。。。。。。。如何将【未解决】标识为【已解决】?????????
回复 使用道具 举报
赵太云 发表于 2013-1-6 17:26
问个题外的。。。。。。。。。如何将【未解决】标识为【已解决】????????? ...

点击编辑,左上角方向的下拉菜单中有已解决
回复 使用道具 举报
冯海霞 发表于 2013-1-6 18:35
点击编辑,左上角方向的下拉菜单中有已解决

找不到啊。。。。。。。。。。。。。。。。。。。。。
回复 使用道具 举报
赵太云 发表于 2013-1-6 18:45
找不到啊。。。。。。。。。。。。。。。。。。。。。


回复 使用道具 举报
赵太云 发表于 2013-1-6 18:45
找不到啊。。。。。。。。。。。。。。。。。。。。。

我这图做的不好。。。你应该能看懂
回复 使用道具 举报
赵太云 发表于 2013-1-6 17:26
问个题外的。。。。。。。。。如何将【未解决】标识为【已解决】????????? ...

编辑帖子,右上角有选项。我听说大概是这样,自己也没试过。
回复 使用道具 举报
这跟调用构告函数有什么系呢,构造函数只是用来在创建对像时,对对像进行数据的初始化而已,对于创建几个对象,那是虚拟机的事,在这里只有一个new,所以虚拟机只会在内存中创建一个对像。并通过构告函数给对象初始化值。
回复 使用道具 举报
陈丽莉 发表于 2013-1-6 19:10
编辑帖子,右上角有选项。我听说大概是这样,自己也没试过。

“右上角有选项 ”这个是不是我之前说的。。。我可能说错方向了,是左边
回复 使用道具 举报
冯海霞 发表于 2013-1-6 18:50

很感谢,也很感动!!!版主能这么细心!!!!爱你哦!!!
回复 使用道具 举报
我支持肖同学的解释。一个类就是一个对象,也只能new一个对象,默认一个类会有一个系统自动添加的无参隐式构造方法,但是为了利用构造函数的特性,通常会显示的写出构造方法,并添加初始化代码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马