一、this关键字的使用:
- this可以用来修饰:属性,方法,构造器
- this修饰属性和方法:
this理解为:当前对象 或当前正在创建的对象
2.1在类的方法中,我们可以使用“this.属性”或者“this.方法”的方式,调用当前对象属性或者方法,但是通常情况下,我们都选择省略“this.”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表示此变量是属性,而非形参。
2.1在类的构造器中,我们可以使用“this.属性”或者“this.方法”的方式,调用当前正在创建的对象属性或者方法,但是通常情况下,我们都选择省略“this.”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表示此变量是属性,而非形参。
具体代码如下:
public class ThisDetail { public static void main(String[] args) { T t = new T(); t.f2(); t.f3(); } } class T { String name = "smith"; int num = 100; /** * 注意:访问构造器:this(参数列表);必须放置到第一个语句 */ public T() { this("jack", 18); System.out.println("T()构造器被调用..."); } public T(String name, int age) { System.out.println("T(String name,int age) 构造器"); } //this关键字可以用来访问本类的属性 public void f3() { String name = "jack"; //传统方式 System.out.println("name=" + name + " num=" + num); //jack 100 //也可以使用this访问属性 System.out.println("name=" + this.name + " num=" + this.num);//smith 100 } public void f1() { System.out.println("f1()方法..."); } public void f2() { System.out.println("f2()方法..."); //调用本类的f1 //第一种方式 f1(); //第二种方式 this.f1(); } }
输出结果如下:
T(String name,int age) 构造器 T()构造器被调用... f2()方法... f1()方法... f1()方法... name=jack num=100 name=smith num=100