一般,咱们说的this表示的是"当前对象",简单的说说this使用须要注意的地方,温故而知新嘛。java
①若是一个类有多个构造方法,那么能够在一个构造方法里面经过this调用另一个构造方法。如: 函数
public ThisTest(){ System.out.println("经过this()方法调用ThisTest()构造器!"); } public ThisTest(int i ){ //调用无参构造器 this(); System.out.println("i="+i); }
②若为其赋予一个参数的话,this关键字就会自动匹配参数相同的构造方法。如this
public ThisTest(String str){ //TODO } public ThisTest(int i){ System.out.println("若是this关键字附带参数,就会自动匹配与之相同的构造器"); } public ThisTest(int i ){ this(i); //this关键字自动匹配形参相同的构造器 }
③同一个构造方法里面不能有两次this调用。如:code
public ThisTest(){ System.out.print("-------------------"); } public ThisTest(int i){ System.out.println("i="+i); } public ThisTest(int i ){ this(); // this(i); //同一个构造器里面不能有两次this调用 }
④不能在构造方法以外任何方法里面使用this来调用构造函数。如:对象
public ThisTest(int i){ System.out.println("i="+i); } private void f(int i ){ // this(i); //在方法中不能经过this关键字来调用构造函数 } public static void main(String[] args){ // this(); //在main方法中也不能经过this来调用构造函数 }
⑤方法中没必要经过this来调用另外一个方法。如:class
public void _f(int i){ //TODO } public void f(int i ){ // this._f(i); //方法中没必要经过this关键字来调用另一个方法 _f(i); //而是直接调用 }
⑥经过this.只能调用类的成员变量。如:变量
public class ThisTest{ private String m ; public ThisTest(String m){ this.m = m; //this只能引用成员变量,即使是局部参数和成员参数名相同 } public ThisTest(String n){ // this.n; //这是错误的引用 } }