this
什么是this:
表示当前对象,this主要存在于两个位置:
构造器中:就表示当前创建的对象
方法中:哪个对象调用this所在的方法,此时this表示哪个对象。
当一个对象创建之后,JVM会分配一个引用自身的引用this。
使用this:
1:解决成员变量和参数(局部变量)之间的二义性,必须使用;
2:同类中实例方法间互调,(此时可以省略this,但不建议省略)
3:将this作为参数传递给另一个方法
4:将当前对象作为方法的返回值(链式方法编程)
5:构造器重载的互调,this(参数)必须写在构造方法第一行,所以一个构造器中只能调用一个重载的构造器。当多个构造器重载时,或者多个方法重载时,我们用少参数调用多参数的。因为参数越多,该方法考虑的未知的因素也越多。
User(String name)
{
this.name = name;
}
User(String name,int age)
{
this(name);//表示在调用参数为String类型的构造器。
this.age = age;
}
6:static不能和this一起使用
创建对象并给对象设置初始值有两种方式:
1):通过无参数构造器创建出一个对象,再通过对象调用相应的setter方法。
2):直接调用带参数的构造器,创建出来的对象就有了初始值。
-----------------------------------
如何选择:
1:如果存在带参数的构造器,方式2是比较简洁的
2:在构建对象的时候需要初始化多个数据,如果使用方式2,那么构造器得提供N个参数,参数过大不直观。此时方式1简单明了。
有时候需要根据数据来创建对象,此时优先使用方式1,其他情况任选。