java中this的用法简介

来源:互联网 发布:wish产品怎么优化 编辑:程序博客网 时间:2024/06/05 15:57

this关键字来表示当前类

微笑微笑微笑

它有一下三种用法:


1.当成员变量的名字和局部变量的名字相同时,如果要在方法中访问(引用)成员变量,可以用 this关键字
例如:
class Circle{
private int x,y;          //定义一个成员变量
public void set(int x,int y){        //定义两个参数x,y(局部变量)
this.x=x;                           //将局部变量的值赋给成员变量
this.y=y;
}
}

解释:上面的例子中成员变量x,y和局部变量是同名的,我们要做的是将参数(即局部变量)中的值赋给成员变量,我们可以很容易的理解这个过程,但在java程序中是怎么区分的呢?

这就要用到this了,因为this可以指定类中的成员变量或者方法,只要在变量名前加上this,就说明该变量是类的成员变量,对于方法,亦是如此。

当然也可以通过创建对象的方法来访问(引用)成员变量或方法,但是为了程序的可读性,一般程序员都会用this代替这种方法。
2.在方法中,可以通过this关键字可访问当前类的成员变量和方法
例如:
class Circle{
private int x;
public void f(){
this.x=10;
this.h();
}
prvate void h(){
}
}

3.辅助调用构造类的调用方法,尤其是当构造方法有多个时
例如:
class Point3D extends Point2D{
protected int x,y,z;
public Point3D(int x,int y){                 //第一个构造方法
//调用类的另一个构造方法,并给实参
his(x,y,0);
}
public Point3D(int x,int y,int z){             //第二个构造方法
this.x=x;
this.y=y;
this.z=z;
}
}


解释:有多个同名的构造方法时,this到底调用的是哪个呢?

这是由this后的参数个数决定的,参数是多少个就调用参数同样多的构造方法。
当然也有限制,就是在无参的构造方法中调用有参构造方法时,this语句必须在首行,否则会出错。
而使用this访问(引用)成员变量时则没有这种限制了,这点很容易混淆,如果分不清,还是使用传统的方法比较好。


总结:
···this关键字主要有三个应用:
(1)this调用本类中的属性,也就是类中的成员变量;
(2)this调用本类中的其他方法;

(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。




0 0
原创粉丝点击