天道不一定酬所有勤
但是,天道只酬勤
Hollis出品的全套Java面试宝典不来了解一下吗?

[译]Java中的this关键字

Hollis出品的全套Java面试宝典不来了解一下吗?

英文原文:Java This
翻译地址:Java中的this关键字
原文作者:Java Papers
翻译作者:Hollis 转载请注明出处。


java中关于this这个关键字的定义:

java中的this关键字用于在方法中引用当前实例。

以下是在java中使用this的方法:


1、明确表示使用的是成员变量(instance)而不是静态变量(static)或者局部变量(local)。

private String javaFAQ;
    void methodName(String javaFAQ) {
    this.javaFAQ = javaFAQ;
}

this在这里代表成员变量(译者注:this.javaFAQ表示成员变量,javaFAQ表示局部变量)。在这个方法里,局部变量的优先级更高。因此,如果没有用this.表示的话则指定的是局部变量。在这个方法里面,如果局部变量的名字和成员变量的名字并不一样的话,那么用不用这个this其实就没有关系了。


2、this用来表示构造函数

public JavaQuestions(String javapapers) {
    this(javapapers, true);
}

这里使用this调用同一个类中的另外一个包含两个参数的构造方法。


3、用于将当前Java实例作为参数传递

obj.itIsMe(this);

4、和上一个类似,this还可以用于返回当前java实例

CurrentClassName startMethod() {
    return this;
}

注意:上面这两种用法如果在内部类中使用,可能会导致结果与预期不一致。因为this将代表内部类的实例而不是外部类的实例。


5、this也可以表示当前类的句柄

Class className = this.getClass(); // this methodology is preferable in java

也可以通过 Class className = ABC.class;实现,这里的ABC指的是java类的类名。


通常,java中的this都与他的实例相关联,不能在静态方法中使用。

赞(1)
如未加特殊说明,此网站文章均为原创,转载必须注明出处。HollisChuang's Blog » [译]Java中的this关键字
Hollis出品的全套Java面试宝典不来了解一下吗?

评论 抢沙发

HollisChuang's Blog

联系我关于我