this关键字的三种用法:
1、 通过this关键字访问一个成员变量,可以解决局部变量名称冲突问题。 实例:
public class Student { String name;//成员变量name int age;//成员变量age long phone;//成员变量phone String address;//成员变量address public Student(String name, int age, long phone, String address) { this.name = name; this.age = age; this.phone = phone; this.address = address; } }上面代码中构造方法中定义的参数name,age等它是成员变量,在类中也定义了name,age等成员变量,在构造方法中使用age则是访问局部变量,如果使用this.age则是访问成员变量。 2、通过this关键字调用成员方法 实例:
public class Student { public void A(){ System.out.println("A方法执行了......"); } public void B(){ this.A();//调用A()方法 } }在B()方法中通过this.A()访问A()方法,注意此处的this关键字可以不写,效果是一样的。
public class Student { public void A(){ System.out.println("A方法执行了......"); } public void B(){ A();//调用A()方法 } }3、在构造方法中访问构造方法this([参数1,参数2,…]) 实例:
public class Student { String name;//成员变量name public Student() { this("张三"); } public Student(String name) { this.name = name;//访问有参构造方法 } public void print(){ System.out.println("姓名:" + name); } public static void main(String[] args) { Student student = new Student(); student.print(); } }在无参构造方法中调用了有参构造方法,在使用this调用构造方法时有以下注意几点:
只能在构造方法中使用this()调用其他的构造方法,不能在成员方法中使用。在构造方法中使用this()调用构造方法的语句必须位于第一行,而且只能出现一次。不能在一个类中的两个构造方法中使用this()互相调用。 public class Student { String name;//成员变量name public Student() { System.out.println("无参构造方法..."); this("张三");//会错误,必须位于第一行 } public Student(String name) { this.name = name;//访问有参构造方法 } } public class Student { String name;//成员变量name public Student() { this("张三");//错误,不能相互调用 } public Student(String name) { this();//错误,不能相互调用 this.name = name;//访问有参构造方法 } }加油吧!!!