2.1.5 this关键字

因为有时方法需要调用该方法本身所属对象,为此Java定义了this关键字。在程序中,可以在任何方法内使用this来引用当前的对象,this就指向了这个对象本身。

归纳起来,this的使用场合有以下几种:

(1)访问当前对象的数据成员。其使用形式如下:

          this.数据成员

下面的示例就是借助this来访问Rectangle类的实例变量width和length:

            // 调用当前对象的成员变量
            System.out.println("长:"+this.length+"\t宽:"+this.width);

(2)访问当前对象的成员方法。其使用形式如下:

          this.成员方法
            // 调用当前对象的成员方法
            System.out.println("长方形的面积是:"+this.area());

例2-3】 在【例2-2】的基础上修改Rectangle类的构造方法,使其形式参数与成员变量名称相同,实现同样功能。

因为this可以直接引用这个对象,那么this.就表示要使用这个对象中的成员,这样就解决了实例变量和局部变量可能出现的名字空间冲突问题。

            public class Rectangle{
                double length;           // 长
                double width;            // 宽
                                        // 带参构造方法,用于初始化长方形的长和宽
                Rectangle(double width, double length){
                    this.width=width;   //this关键字表示当前对象
                    this.length = length;
                }
                                        // 求长方形的面积
                double area(){
                    return this.length*this.width;
                }
                                        // 打印输出
                void display(){
                                        // 调用当前对象的成员变量
                    System.out.println("长:"+this.length+"\t宽:"+this.width);
            // 调用当前对象的成员方法
                    System.out.println("长方形的面积是:"+this.area());
                }
            }
            public class RectangleDemo{
                public static void main (String args[]){
                    // 调用带参构造方法
                    Rectangle rect1 = new Rectangle(10,20);
                    rect1.display();  // 调用对象rect1的成员方法
                }
            }

该程序的运行结果如下:

            长:20.0   宽:10.0
            长方形的面积是:200.0