首页 > 学院 > 开发设计 > 正文

this的使用方法

2019-11-14 21:36:34
字体:
来源:转载
供稿:网友
this的使用方法

当一个对象创建后,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(参数列表)来调用本类中其他的构造函数时,这行代码必须是第一条语句,构造函数内只能调用一个构造函数。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表