A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于潇 中级黑马   /  2012-4-25 09:59  /  2238 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Child implements Runnable {
private Dad d;

Child(Dad d) {
this.d = d;
}

public void wakeup() {
d.feed(this); //这部分this是如何调用的 ????
}

public void run() {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.wakeup();
}
}

class Dad {
void feed(Child c) {
System.out.println("feed.............");
}
}

public class Test2 {

public static void main(String[] args) {
Dad d = new Dad();
Child c = new Child(d);
new Thread(c).start();

}

}

--------------------------------------------------------------------
d.feed(this); //这部分this是如何调用的 ????
持有对方的引用是怎么回事呀,这是什么设计模式

6 个回复

倒序浏览
在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this,使用this代表自身类的对象
回复 使用道具 举报
这是一个特殊的关键字来表示类的当前实例。这在使用实例方法或构造,这是当前对象的引用 - 被称为对象的方法和构造。

因为这关键字的引用,从父亲继承的对象,所以它是Java语法所允许。
回复 使用道具 举报
表示所在类的对象,简单的说就是在哪个类中,就表示那个类的对象
回复 使用道具 举报
其实这个this是什么,你自己打印输出不就O了吗,我给你加上,他指向的是Child当前对象,打印this其实打印的this.toString。
代码:
  1. package com.heima;

  2. class Child implements Runnable {
  3. private Dad d;

  4. Child(Dad d) {
  5. this.d = d;
  6. }

  7. public void wakeup() {
  8. System.out.println("this------>"+this);
  9. d.feed(this); // 这部分this是如何调用的 ????
  10. }

  11. public void run() {
  12. try {
  13. Thread.sleep(4000);
  14. } catch (InterruptedException e) {
  15. e.printStackTrace();
  16. }
  17. this.wakeup();
  18. }
  19. }

  20. class Dad {
  21. void feed(Child c) {
  22. System.out.println("feed.............");
  23. }
  24. }

  25. public class Test2 {

  26. public static void main(String[] args) {
  27. Dad d = new Dad();
  28. Child c = new Child(d);
  29. new Thread(c).start();

  30. }

  31. }
复制代码
输出:

不用问人的问题,自己打印就O了,
回复 使用道具 举报
光sail 发表于 2012-4-25 11:32
表示所在类的对象,简单的说就是在哪个类中,就表示那个类的对象

哪个对象?
回复 使用道具 举报
于潇 发表于 2012-4-25 19:33
哪个对象?

public void wakeup() {
d.feed(this); //这部分this是如何调用的 ????
}

这个this就是Child这个类的对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马