作者:不奸不散遇 | 来源:互联网 | 2023-10-10 11:20
参考javathis()多个参数_java中this用法总结java的继承(重点)在构造器中调用构造器需要使用this。一个类有许多构造函数,有时候想在一个构
参考
java this() 多个参数_java中this用法总结
java的继承(重点)
在构造器中调用构造器需要使用this。
一个类有许多构造函数,有时候想在一个构造函数中调用其他构造函数,以避免代码重复,可以使用this关键字。在java编程思想中有这样一段话:通常写this的时候,都是指“这个对象”或者“当前对象”,而且它本身表示对当前对象的引用。在构造器中,如果为this添加了参数列表,那么就有不同的含义。这将产生对符合此参数列表的某个构造器的明确调用;这样调用其他构造函数就有了直接的途径。
仔细分析:从主函数开始,new Flower()会在内存分配空间,初始化对象,初始化对象是调用构造函数,这里没有写任何参数,当然是调用默认构造函数,就是那个无参的构函数。这个无参的构造函数的第一行代码就是this(“hi”,122);这里的意思是该无参构造函数又去调用带两个参数的构造函数,来到带两个参数的构造函数,第一行代码是this(s);这行代码自动匹配带一个参数的构造函数,发现Flower(String ss)这个比较匹配,都是String类型的参数。然后调用了带有一个String类型参数的构造函数,打印:只有String类型的参数的构造函数 s = hi;然后回到上一级调用函数,就是带有两个参数的构造函数,打印输出:有String和int类型的参数的构造函数;再回到上一级,就是无参构造函数,打印:默认构造函数。此时构造函数已经初始化完成新建的对象,最后在主函数的最后一行代码中打印:petalCount=122 s=hi。
注意:
1,this只可以调用一个构造器,在一个构造器中不能同时调用两个构造器;
2,必须将你所调用的构造器放在最开始的位置,这也解释了为什么不能在一个构造函数中调用两个构造器,那第二个势必不在最开始位置。
3,本例中在带有两个参数的构造函数中可以用this调用其他任意一个只有一个参数的构造函数,这取决你自己,随便调哪一个都可以。
4,在构造函数之外的方法内不能使用this调用构造函数。代码里面注释的都不能正确编译。
this总结
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
4、很明显this不能用在static方法中,因为this指代当前对象,而static则无对象之说。