标签:style blog http color ar 使用 java strong sp
当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。this是指向对象本身的一个指针。this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
1、使用this调用成员变量和成员函数
使用this调用成员变量:this .成员变量
//Person类
class Person{
String name;//成员变量name
void talk(){ //成员函数talk()
System.out.println("My name is " + this.name);
}
}
class test{
public static void main(String args[]){
Person p1 = new Person();
p1.name = "zhangsan";
p1.talk();
Person p2 = new Person();
p2.name = "lisi";
p2.talk();
}
}

this是对象,代表 调用了这个函数的对象。
当成员变量和参数(局部变量)的名字相同时,在方法体中如果不加this,使用的是参数而不是成员变量,要使用成员变量的话必须加this。this用于区别成员变量和参数。在没有同名的情况下,可以直接用成员变量的名字,可省略this,最好加上
例子如下:
//Person类
class Person{
String name;//成员变量name
void talk(String name){ //成员函数
System.out.println("My name is " + name);
}
}
class test{
public static void main(String args[]){
Person p1 = new Person();
p1.name = "zhangsan";
p1.talk("zhangsan 1");
Person p2 = new Person();
p2.name = "lisi";
p2.talk("lisi 1");
}
}

this同样可以调用本类中的成员函数:this . 函数名
如果在某个变量前面加上一个this关键字,其指的就是这个对象的成员变量或者方法,而不是指成员方法的形式参数或者局部变量。
2、使用this调用构造函数
//Person类
class Person{
String name; //成员变量name
int age;
String addr;
Person(){ //构造函数
System.out.println("没有参数的");
}
Person(String name ,int age){ //成员变量和参数重名
this(); //调用没有参数的构造函数
this.name=name; //用this把参数赋值给成员变量
this.age=age;
System.out.println("两个参数的");
}
Person(String name,int age ,String addr){
this(name,age); //this(参数列表):根据传入的参数个数和类型来调用本类中其他的构造函数
this.addr=addr;
System.out.println("三个参数的");
}
}
class test{
public static void main(String args[]){
Person p1 = new Person("zhangsan",20,"北京");
}
}

当使用this(参数列表)来调用本类中其他的构造函数时,这行代码必须是第一条语句,构造函数内只能调用一个构造函数。
标签:style blog http color ar 使用 java strong sp
原文地址:http://www.cnblogs.com/chavez-wang/p/4047199.html