this可理解为:当前对象或当前正在创建的对象
①在类的方法中, 我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。通常情况下,我们都选择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this .变量"的方式,表明此变量是属性,而非形参。
②在类的构造器中,我们可以使用"this.属性"或"this.方法"的方式,调用当前正在创建的对象属性或方法。通常情况下,我们都选择省略"this."。特殊情况下,如果构造器的形参和类的属性同名时,我们必须显的使用"this.变量"的方式,表明此变量是属性,而非形参。
在类的构造器中,可以显式的使用"this (形参列表)"方式,调用本类中指定的其他构造器。
构造器中不能通过"this (形参列表) "方式调用自己。
如果一个类中有n个构造器,则最多有n - 1构造器中使用了"this (形参列表) "。
规定: "this (形参列表) "必须声明在当前构造器的首行。
示例1:调用属性方法
class Person{ private String name ;private int age ;public Person(String name,int age){this.name = name ; this.age = age ; }public void getInfo(){System.out.println("姓名:" + name) ;this.speak();}public void speak(){System.out.println(“年龄:” + this.age);}
}
示例2:调用构造器
class Person{ private String name ;private int age ;public Person(){ // 无参构造器System.out.println("创建对象") ;}public Person(String name){this(); // 调用本类中的无参构造器this.name = name ;}public Person(String name,int age){this(name) ; // 调用有一个参数的构造器this.age = age;}public String getInfo(){return "姓名:" + name + ",年龄:" + age ;}
}