this理解

来源:互联网 发布:网络攻击可以分为 编辑:程序博客网 时间:2024/05/21 11:08

  this 作用

1.在return中使用, 返还当前对象的句柄

书中实例:

public class Leaf {


private int i = 0;

Leaf increment(){
++i;
return this;

}
void print(){
System.out.println("i="+i);
}

public static void main(String[] args){
Leaf x = new Leaf();
x.increment().increment().increment().print();
}

}

打印结果:   i=3

通过increment()方法返回this,代表当前对象的句柄。所以可以方便对同一个对象执行多项操作。

2.在构建器里调用构建器 和引用成员变量

一个类写多个构建器,为了避免重复代码。

(1)在一个构建器里调用另一个构建器,但不可调用两个。

(2)根据参数列表分辨构造器。

(3)调用构造器必须是第一件做的事,否则会受到编译报错。

(4)非构造器不能调用构造器

调用内容(1)this.成员变量;(2)this(参数列表);

书中实例:

public class Flower{

   private int petalCount = 0;

private String s = new String("null");

Flower(int petals){

petalCount = petals;//参数petals传递给成员变量petalCount

}

Flower(String ss){

   s = ss;//参数ss传递给成员变量s

}

Flower(String s ,int petals){

    this(petals);//调用第一个构造器

//this(s);若这样写,报错。只能一个。

this.s = s;//参数s 传递给成员变量s。this区分两个s。

}

Flower(){

 this("hi",47);//调用第三个构造器

}

void print(){

   //this(11);非构造器不能调用构造器

}


}

另外从一个类的一个方法调用两一个类方法,不必使用this,只要简单调用。

实例:class Apricot{

      viod pick(){}

      void pit(){

      pick();

}

}

也可以写成this.pick(),但无此必要,编译器能自动完成。