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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1198914316 中级黑马   /  2014-10-16 20:04  /  2438 人查看  /  24 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位同学,我是一个新手大家帮我解释一下Java中this意思,看了好久就是不理解,有点乱,谢谢。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 加油!

查看全部评分

24 个回复

倒序浏览
  1. public class Temp
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Person p = new Person("项羽", 2246);
  6.                 p.speak();
  7.         }
  8. }
  9. class Person
  10. {
  11.         private String name;
  12.         private int age;
  13.         Person(String name, int age)
  14.         {
  15.                 this.name = name;
  16.                 this.age = age;
  17.         }
  18.         public void speak()
  19.         {
  20.                 System.out.println("我叫" + this.name + ",今年 " + this.age + "岁");
  21.         }
  22. }
复制代码

把this, 想象成p 就行了, 这个例子中, 把 this 替换想象成 p . 那就成了 p.name ,  p.age 这样好理解吧?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 百度了一下,确实是2246岁

查看全部评分

回复 使用道具 举报
哪个对象调用那么this代表就是哪个对象
回复 使用道具 举报
this代表的是对象,也就是调用该函数的对象。
简单的说就是:哪个对象调用这个this所在的函数,这个this就代表哪个对象。
回复 使用道具 举报
mjwp_cool 来自手机 中级黑马 2014-10-16 23:37:40
报纸
楼上说的对,this代表本类对象。就是调用者
回复 使用道具 举报
this关键字:用于区分局部变量和成员变量同名的情况
this代表类的对象,代表它所在方法所属对象的引用,那个对象在调用this所在的方法,this就代表那个对象
回复 使用道具 举报
this顾名思义,就是中文的”这“,this。后面跟随的变量或者方法,其含义,就调用this的这个类 或者方法。
回复 使用道具 举报
this:代表一个本类对象的引用。
super:代表一个父类空间。
  1. class Fu
  2. {
  3.         private int num = 4;
  4.         public int getNum()
  5.         {
  6.                 return num;
  7.         }
  8. }

  9. class Zi extends Fu
  10. {
  11.         private int num = 5;
  12.         void show()
  13.         {
  14.                 System.out.println(this.num+"....."+super.getNum());
  15.                 //输出结果为 5.....4
  16.                 //可以看出,this.num  指的是本类的中5
  17.         }
  18. }

  19. class ExtendsDemo2
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 Zi z = new Zi();
  24.                 z.show();
  25.         }
  26. }
复制代码
回复 使用道具 举报
朴日男 发表于 2014-10-16 20:36
把this, 想象成p 就行了, 这个例子中, 把 this 替换想象成 p . 那就成了 p.name ,  p.age 这样好理解吧? ...

谢谢,您的帮忙。
回复 使用道具 举报
1198914316 发表于 2014-10-17 08:22
谢谢,您的帮忙。

简单点,就是代表类自己,如果是成员变量,代表类自己的成员变量,方法代表自己的成员方法,和super在一起比较容易理解些的
回复 使用道具 举报
this表示调用当前方法的当前对象
回复 使用道具 举报
new999 中级黑马 2014-10-17 12:23:46
12#
坚持到底
回复 使用道具 举报
朴日男 发表于 2014-10-16 20:36
把this, 想象成p 就行了, 这个例子中, 把 this 替换想象成 p . 那就成了 p.name ,  p.age 这样好理解吧? ...

百度了一下,确实是2246岁。。。
回复 使用道具 举报
朴日男 发表于 2014-10-16 20:36
把this, 想象成p 就行了, 这个例子中, 把 this 替换想象成 p . 那就成了 p.name ,  p.age 这样好理解吧? ...

请问你这个代码中
class Temp(有主函数)和class Person  都是类,this出现在了class Person中,能出现在有主函数的类中吗
回复 使用道具 举报
this就表示当前的对象  哪个对象调用的包含this的方法   this就代表哪个对象
回复 使用道具 举报
情天不雨 发表于 2014-10-17 11:09
简单点,就是代表类自己,如果是成员变量,代表类自己的成员变量,方法代表自己的成员方法,和super在一 ...

我觉的this和super一起,才容易混淆
回复 使用道具 举报
run_wind 发表于 2014-10-17 19:54
我觉的this和super一起,才容易混淆

不是吧,你啊,super指调用父类的,this是自己的,呵呵,慢慢来吧。。。
回复 使用道具 举报
表示当前函数所在类的实力对象
回复 使用道具 举报
this就代表本类对象
回复 使用道具 举报
曾勇 中级黑马 2014-10-18 20:57:06
20#
本帖最后由 曾勇 于 2014-10-18 21:02 编辑

this 只能调用本类中的成员函数和成员变量,调用成员变量时用: this.成员变量 ;调用成员函数时用: this.成员函数();
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马