转载注明出处:http://blog.csdn.net/u011569040/article/details/42803457
1.使用this 调用成员变量和成员函数
2.使用this 调用构造函数
class Person{
String name;
void talk(){
System.out.println("My name is"+this.name);
}
}
this是一个对象,代表了调用了这个函数的对象,哪个对象调用了 talk() 这个方法,this就代表哪个对象。
class Test{
public static void main (String args[]){
Person p1 = new Person() ;
p1.name = "张三";
Person p2 = new Person() ;
p2.name = "李四";
p1.talk();
p2.talk();
}
}
如果Test 这样写,而Person分别换成
class Test{
public static void main (String args[]){
Person p1 = new Person() ;
p1.name = "张三";
Person p2 = new Person() ;
p2.name = "李四";
p1.talk("三");
p2.talk("四");
}
}
如果Person.java这样写
class Person{
String name;
void talk(String name){
System.out.println("My name is"+name);
//System.out.println("My name is"+this.name);
}
}
则结果:
如果Person.java这样写
class Person{
String name;
void talk(String name){
//System.out.println("My name is"+name);
System.out.println("My name is"+this.name);
}
}
则结果:
所以要把this 看做 一个对象 ,对象的...
this的另外一种用法
class Person{
String name;
int age;
String address;
Person(){
System.out.println("我是无参构造函数");
}
Person(String name,int age){
this();//调用了无参构造函数
this.name = name;
this.age = age;
System.out.println("我是两个参数的构造函数");
}
Person (String name,int age,String address){
this(name,age);//为了减少代码的重复性,调用了上面的只含两个参数的Person(String name,int age),必须一定要写在第一句
this.address = address;
System.out.println("我是三个参数的构造函数");
}
}
class Test{
public static void main (String args[]){
Person p1 = new Person("张三",21,"湖北");
}
}
结果: