this引用

来源:互联网 发布:unity3d汽车模型下载 编辑:程序博客网 时间:2024/05/22 17:20

this是java中的一个关键字,他的作用是引用对象自身。

实际上,我们在设计类的时候,可以在使用(注意不是声明)方法或者类变量之前加上“this.”,这样写的意思呢,是说我在调用这个方法或者变量的时候要告诉计算机,我这里需要的,是“调用这一行代码的【对象】”,他的“这个方法和变量”。

但是在绝大多数情况下,this加不加其实是无所谓的,因为通常来说,“某某对象的某方法”和“这个类的某方法”在计算机中是没区别的,因为对象本来就是类的实例,举个例子,比如说this.gets()和在设计类的时候直接调用gets()起到的效果是一样的。

那么this有什么用处呢?首先,我们可以通过this来访问被隐藏的数据域,这句话是什么意思呢?就是说,我们可能有一个类变量名字叫做i,但是在某个方法中,我们又重复定义了一个名字叫做i的局部变量,这时候,我们在这个方法内访问i访问到的就是这个局部变量,而类变量i被隐藏了,如果想调用类变量i,我们可以通过“this.i”来调用,因为现在我告诉计算机的是“我要使用的是这个对象的i”,而不是“我要使用变量i”,第二种表述计算机将会找最近的i来使用,而第一种表述计算机就明确知道要找这个对象的变量i了。

如果这个变量是静态变量的话,除了用this.i,我们同样也可以用调用静态变量的方法:直接用“类名.i”就行了。

举一个例子:

public class Circle {private double radius;private static double i;public void set(double radius) {this.radius = radius;}public void setI(double i) {Circle.i = i;}}

this关键词还有一个用法,他可以调用同一个类的另一个构造方法,直接用在构造方法中,“this(参数)”这样的形式表示直接调用另一个构造方法

举一个例子:

public class Circle {private double radius = 1;public Circle() {this(1.0);}public Circle(double radius) {this.radius = radius;}}


原创粉丝点击