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用于区别成员变量和参数。在没有同名的情况下,可以直接用成员变量的名字,可省略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 函数名

如果在某个变量前面加上一个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的使用方法

当使用this(参数列表)来调用本类中其他的构造函数时,这行代码必须是第一条语句,构造函数内只能调用一个构造函数。

上一篇:[ZigBee] 5、ZigBee基础实验——图文与代码详解定时器1(16位定时器)(长文)


下一篇:for ++i i++