this 在Java中的应用

来源:互联网 发布:java应用服务器有那些 编辑:程序博客网 时间:2024/05/16 06:27

在Java语言中,this是一个关键字,它可以理解为一个引用,是一个指向调用对象本身的引用名。

常见的用法主要有两种:

1.引用类的隐藏数据域(隐藏属性)。例如在数据域(属性)的set方法中,经常将数据域名用作参数名。在这种情况下,这个数据域在set方法中被隐藏(当方法中参数名或局部变量名与类属性变量名相同时,类变量(数据域)就会被隐藏起来)。为了给它设置新值,需要在方法中引用隐藏的数据域名。隐藏的静态变量可以简单地通过“类名.静态变量”的方法引用。隐藏的实例变量就需要使用关键字this来引用。例如:

public class Foo{

int i = 5;

static double k = 0;

void setI( int i ){//一个实例方法setI();

this.i = i; //指向调用setI方法的那个对象,把传入的int型的参数i的值赋给那个对象的数据域i。

}

static void setK( double k){

Foo.k = k; //将double类型的参数k的值赋值给这个类的静态数据域k,属性k是被类的所有对象所共享的。

}

}

2.this的另一个常用的用法是让构造方法调用同一个类的另一个构造方法。例如:

public class Circle{

private double radius;

public Circle(double radius){//有参构造方法

this.radius = radius;//显示使用this来引用被创建对象的数据域radius.

}

public Circle(){//无参构造方法

this(1.0); //使用this调用另一个有参构造方法,参数类型是double型的。使用方法是this(参数列表);在构造方法中,this(参数列表)语句要写在其他语句出现之前。

}

public double getArea(){

return this.radius*this.radius*Math.PI;//每个实例变量都属于一个this表示的实例,通常在不引起歧义的情况下,这个this是被忽略的。

}

}


水平有限,如有错漏,欢迎指正,谢谢!

0 0
原创粉丝点击