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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuhyoung 中级黑马   /  2014-5-11 21:21  /  1812 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们都知道this关键在作为构造函数使用的时候必须要放在第一行。此时的this()调用构造函数是当作一个函数来使用吗?还是作为构造函数可以实例化一个对象呢?
如下面代码:
class Demo
{
        Demo(){
                System.out.println("空构造函数!");
        }
        Demo(String name)
        {
                this();
                System.out.println(name+"带参数构造函数!");
               
        }
}
有参数的构造函数里面包含一个this()关键字,此时this()关键字调用空的构造函数,那么调用空构造函数是当作构造函数还是普通的构造函数呢?也就是说是当作普通的构造函数可以创建实例还是直接当作一个普通的函数调用来使用呢?

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
xinconan + 10
Silent_memory + 1 赞一个!

查看全部评分

9 个回复

倒序浏览
构造函数就是用来给对象做初始化的,不管出现在什么位置,其功能都是固定的。
同一个类中的构造函数,可以相互调用,使用关键字this。
构造函数间的相互调用,与成员函数间的相互调用是类似的,都是为了简化书写,同时也提高了代码的复用性。
回复 使用道具 举报 1 0
this就是在同一个类中,为了调用本类里的非静态的方法,构造等而又避免创造一个新的类而采用的办法,你的这个程序就是调用了上面的构造,下面带参的构造本身就是一个新的构造了……
回复 使用道具 举报
同意2楼的说法,1楼你想的太多了,没有你想象的那么复杂
回复 使用道具 举报
想法非常好,可以验证一下。
回复 使用道具 举报
this关键字代表当前本对象!
回复 使用道具 举报
应该是空的构造函数吧!
回复 使用道具 举报
路过长长知识~
回复 使用道具 举报
想法很好,顶一下
回复 使用道具 举报
this() 调用当前对象的空参构造,如果括号呢加相应的变量  则调用当前对象相应有相应参数列表的构造函数 super()差不多 调用父类空构造方法  括号内有变量 则调用父类含参构造
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马