电话:0731-83595998
导航

Java基础-浅谈Java中this的使用

来源: 2017-12-19 10:11

 1. this是指当前对象自己。
  当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:

public class A {

String s = "Hello";

public A(String s) {
System.out.println("1 -> this.s = " + this.s);
System.out.println("2 -> this.s = " + this.s);

public static void main(String args) {
}

  运行结果:

s = HelloWorld!
this.s = Hello
this.s = HelloWorld!

  在这个例子中,构造函数A中,参数s与类A的变量s同名,这时如果直接对s进行操作则是对参数s进行操作。若要对类A的变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对参数s进行打印结果;后面两行分别是对对象A的变量s进行操作前后的打印结果。
当你要把自己作为参数传递给别的对象时,也可以用this。如:

public class A {
new B(this).print();

public void print() {
}

public class B {
public B(A a) {
}

public void print() {
System.out.println("Hello from B!");
}

  运行结果:
Hello from B!

  在这个例子中,对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。
有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:

public class A {

public A() {
public void run() {
A.this.run();
sleep(1000);
}
}
thread.start();

public void run() {
i++;

public static void main(String args) throws Exception {
}

}

  在上面这个例子中, thread 是一个匿名类对象,在它的定义中,它的 run 函数里用到了外部类的 run 函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的 run 函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用外部类的类名加上 this 引用来说明要调用的是外部类的方法 run。

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端