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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 番茄君   /  2016-5-10 18:46  /  15750 人查看  /  66 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代表当前类的对象的引用.用于区分成员变量与局部变量重名.
回复 使用道具 举报
谁调用我,我就代表谁
回复 使用道具 举报
说白了就是谁调用就是谁的,子类调用就是指子类,父类调用就是父类
回复 使用道具 举报
小编认为,要理解super,要和this一起作比较 1、成员变量    this代表对调用本类成员变量,本类中没有时会去父类中寻找。    super调用父类成员变量; 2、调用构造函数   this()调用本类的构造方法    super()调用父类的构造方法 3、调用成员方法    this.调用本类的成员方法,当本类没有时,调用父类的    super.调用父类的成员方法  this代表对当前对象的引用,谁调用我,我就代表谁;当本类中没有时才会调用父类。 super代表对父类的引用;
回复 使用道具 举报
this代表本类对象,this.name = name; 就是用来区分局部变量和成员变量的。  当本类中没有这个对象的时候 会从继承的父类中寻找。
this :谁来调用我,我就代表谁。
this  一般出现在有参的构造方法中
回复 使用道具 举报
一般是指的当前参数的调用
回复 使用道具 举报
this其实是代表对象,而且是任意对象,但是这样范围太大肯定是不行的,所以其实this是代表当前类的对象,this在哪个类里面,就代表这个类的对象,然后这个类的某个对象使用this,this就代表这个对象
回复 使用道具 举报
this关键字是用来解决成员变量和局部变量重复命名的,这里简单介绍一下,成员变量是在类中方法外,局部变量是在类中方法中。在实际使用额过程中,根据不同的场景有不同的需求,因此需要能够对两个属性值都可以调用。可以的话你敲一遍就可以了解了。举个例子看起来应该比较直观:
//类A中的main方法中进行功能测试,类B中的method对类B中的变量进行输出,分别是带this和不带this的
class A
{
     public static void main(String[] args){
           //新建对象
           B b=new B():
           //调用方法的时候就会执行其中的语句
           b.method();
     }
}
class B
{
      //这是类中方法外的属性值
      String name="lisi";
      //在此方法中进行输出
      public void method(){
      //这是类中方法中的属性值
      String name="zhangsan";
      System.out.println(“方法中的属性值”+name);
      System.out.println(“方法外的属性值”+this.name);
      }
}

回复 使用道具 举报
this.name=name中,   this.name是本对象的成员属性, 刚开始没有赋值,    name 是传进去的参数  ,  然后赋值给  this.name..单独使用时,代表本类对象
回复 使用道具 举报
this 指向当前实例对象的引用,谁来调用我我就代表谁
回复 使用道具 举报
this.name指的是本类的name,而等号后面的name指的是调用方法所传递的参数name,记住一点this是本类对象的引用就可以区分了
回复 使用道具 举报
this.name指的是本类的name,而等号后面的name指的是调用方法所传递的参数name,记住一点this是本类对象的引用就可以区分了
回复 使用道具 举报
嗯,好多呢。
回复 使用道具 举报
第一,你要明白为什么Java要提供this关键字(使用场合)
       this关键字第一种应用场合是,解决局部变量隐藏成员变量的问题,具体看下面代码
  1. /*
  2. *[this关键字的第一种用法]:解决了局部变量隐藏成员变量的问题(前提是同名)
  3. */
  4. class  DemoThis {
  5.         public static void main(String[] args)  {

  6.         }
  7. }

  8. //创建一个类Student
  9. class Student {
  10.         //成员变量(事物的属性)
  11.         String name;                                        //学生有姓名吧
  12.         String grade;                                        //学生分班级吧
  13.         //...

  14.         //无参构造器和有参构造器
  15.         public Student(){}

  16.         /*
  17.         *第一种情况,如果形参(局部变量)不和成员变量name同名
  18.         *这种情况少,因为变量名建议"见名知意",n和g很明显看不出什么意思
  19.         */
  20.         public Student(String n,String g){
  21.                 name = n;
  22.                 grade = g;
  23.         }

  24.         /*
  25.         *第二种情况,如果局部变量和成员变量同名了
  26.         *就会出现局部变量变量把成员变量的"隐藏"了
  27.         *因为Java会采用就近原则,访问最近的变量
  28.         */
  29.         public void set(String name,String grade){
  30.                 name = name;
  31.                 grade = grade;
  32.                 //这样写,能按照我们预期的想给Student类对象的name属性和grade属性赋值?
  33.                 //这里,不能实现,因为局部变量name和grade会给自己赋值
  34.         }
  35. }
复制代码

this的第二种应用场景,就是调用本类的构造方法
第二,你要明白为this是什么
this其实就是一个地址,那个对象调用this所在的方法,this就代表那个对象,也可以说this是该对象的引用
第三,你要知道什么时候this可以省略
在第一种情况,只要保证不出现同名变量,就无需显式在变量前面加上this.
在第二种情况,系统默认即可
回复 使用道具 举报
如果有两个同类型的对象,分别叫作a 和b,那么您也许不知道如何为这两个对象同时调用一个f()方法:
class Banana { void f(int i) { /* ... */ } }
Banana a = new Banana(), b = new Banana();
a.f(1);
b.f(2);
若只有一个名叫f()的方法,它怎样才能知道自己是为a 还是为b 调用的呢?

this 关键字(注意只能在方法内部使用)
可为已调用了其方法的那个对象生成相应的句柄。

this就是让你知道哪个对象在调用方法
回复 使用道具 举报
super,this关键字的作用及用法
?          在Java类中使用super来引用父类的成分
-        可用于访问父类中定义的属性super
-        可用于调用父类中定义的成员方法super
-        可用于在子类构造器中调用父类的构造器super
-        的追溯不仅于直接父类super
?          中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象。Java
-        构造器中指该构造器所创建的新对象
-        方法中指调用该方法的对象
?          关键字的用法this
-        在类本身的方法或构造器中引用该类的实例变量和方法
-        将当前对象作为参数传递给其它方法或构造器
-        用来调用其他的重载的构造器
回复 使用道具 举报
        关键字的用法this
-        在类本身的方法或构造器中引用该类的实例变量和方法
-        将当前对象作为参数传递给其它方法或构造器
-        用来调用其他的重载的构造器
回复 使用道具 举报
这个this就是代指调用这个类的对象的地址
回复 使用道具 举报
谢谢楼主!我也有这个问题了,来看看现成答案
回复 使用道具 举报
ypenghui 发表于 2016-5-11 23:05
this.name = name
举个例子:
//定义一个Person类

这个回答好!谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马