黑马程序员技术交流社区

标题: 关于this关键字 [打印本页]

作者: wuhyoung    时间: 2014-5-11 21:21
标题: 关于this关键字
我们都知道this关键在作为构造函数使用的时候必须要放在第一行。此时的this()调用构造函数是当作一个函数来使用吗?还是作为构造函数可以实例化一个对象呢?
如下面代码:
class Demo
{
        Demo(){
                System.out.println("空构造函数!");
        }
        Demo(String name)
        {
                this();
                System.out.println(name+"带参数构造函数!");
               
        }
}
有参数的构造函数里面包含一个this()关键字,此时this()关键字调用空的构造函数,那么调用空构造函数是当作构造函数还是普通的构造函数呢?也就是说是当作普通的构造函数可以创建实例还是直接当作一个普通的函数调用来使用呢?
作者: 谢振宣    时间: 2014-5-11 22:46
构造函数就是用来给对象做初始化的,不管出现在什么位置,其功能都是固定的。
同一个类中的构造函数,可以相互调用,使用关键字this。
构造函数间的相互调用,与成员函数间的相互调用是类似的,都是为了简化书写,同时也提高了代码的复用性。
作者: 姜蕾蕾    时间: 2014-5-12 00:24
this就是在同一个类中,为了调用本类里的非静态的方法,构造等而又避免创造一个新的类而采用的办法,你的这个程序就是调用了上面的构造,下面带参的构造本身就是一个新的构造了……
作者: jsjchenlong    时间: 2014-5-12 01:27
同意2楼的说法,1楼你想的太多了,没有你想象的那么复杂
作者: lvc    时间: 2014-5-12 01:56
想法非常好,可以验证一下。
作者: 奇迹    时间: 2014-5-12 02:16
this关键字代表当前本对象!
作者: 李小新H    时间: 2014-5-12 07:27
应该是空的构造函数吧!
作者: 酱油炒饭    时间: 2014-5-12 21:37
路过长长知识~
作者: 天外的星    时间: 2014-5-13 09:05
想法很好,顶一下
作者: 苗润    时间: 2014-5-14 00:15
this() 调用当前对象的空参构造,如果括号呢加相应的变量  则调用当前对象相应有相应参数列表的构造函数 super()差不多 调用父类空构造方法  括号内有变量 则调用父类含参构造




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