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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

this是当前的类的属性,,,一般在构造和get/set中出现,,方法中使用本类可以省略,因为java默认为就近原则
回复 使用道具 举报
以下两种情况,必须显示的使用this
1).局部变量覆盖成员变量时:如果想要访问被覆盖的成员变量,必须显示的使用this.成员变量名
2).在一个构造方法内,调用另一个构造方法时,需要使用:this([实参]);
回复 使用道具 举报
this用来区分同名变量,你所说的name是成员变量,加上this是指当前作用域范围内的变量
回复 使用道具 举报
一般来说:  区分变量的,调用者的和类里面的(局部变量)
回复 使用道具 举报
客气了!!!
回复 使用道具 举报
例如:String name ;
      int age;
      public Person() {}
      public Person(String name,int age) {
           this.name=name;
          this.age=age;
}
其中的成员变量名和局部变量名重复:name和age/为了区分,所以用this来区分,就是谁来调用我,我就代表谁,"我"就是指"this"关键字,他跟谁在一块就代表谁,等号左边的就代表this.name代表的就是成员变量,
后面还有的就是this和super在调用方法的时候也会用到!
回复 使用道具 举报
this表示指向对象自己的引用。
我们知道方法中既可以使用实例变量,也可以使用方法中的局部变量。那么当实例变量与局部变量重名的时候,方法中默认的是先使用局部变量,这时如果是想使用实例变量需要用this。
  1. 举个例子:
  2. public class Students{
  3.     public String name;
  4.     public void test( String name){
  5.             this.name = name;
  6. //前面this.name的name是成员变量,等
  7. //号右边的name是方法中的形参
  8. //如果形参的名字不是name,this可以
  9. //省略
  10.    }
  11. }
复制代码

当new一个Students的对象调用方法test的时候,this就表示调用这个方法的对象。对象和类不清楚的可以百度,其实还是很容易理解的。
回复 使用道具 举报
通俗点来说就是:我儿子(类)的名字(属性)还没有取,现在看见隔壁村有个叫王二的,我就把王二这个名字赋予我儿子,然后我儿子就有名字了。
回复 使用道具 举报
前面一个name是该类的属性,后一个name是构造方法传入的参数,为了区分两个量,才把this加上,以区分两个变量(或属性)。
回复 使用道具 举报
this一般会出现在setter和getter方法中,主要就是为了区别开局部变量和成员变量的重名问题。this带表当前对象的引用。
回复 使用道具 举报
this的用法有下面的两种
回复 使用道具 举报
this的用法有下面的两种
                1、是表示当前类的引用,谁使用this就表示谁。
2、成员变量和局部变量一致时区分成员变量和局部变量;
回复 使用道具 举报
this通俗点理解就是代表当前创建的对象,this.name 代表对象的变量,name代表局部的变量,两个不同的,还是要理解明白
回复 使用道具 举报
this通俗点理解就是代表当前创建的对象,this.name 代表对象的变量,name代表局部的变量,两个不同的,还是要理解明白
回复 使用道具 举报
super和this         super调用构造方法的作用:子类通过调用父类的构造方法,给父类的成员变量赋值                  调用成员变量和成员方法                 this.成员变量名                 super.成员变量名                 this.方法名(实际参数)                 super.方法名(实际参数)         调用构造方法                 this调用本类的无参 this()                 this调用本类的有参 this(实际参数)                 super调用父类的无参 super()                 super调用父类的有参 super(实际参数)          注意事项:this和super调用构造方法,必须放在第一行                              案例         class Fu  {                 public String name = "我是爸爸";         }         class Zi extends Fu{                 public String name = "我是儿子";                                  public void show(String name){                         System.out.println(name);                        //输出 呵呵                         System.out.println(this.name);                        //输出 我是儿子    this:表示从本类成员位置开始找name属性,找到了就使用,找不到就从父类的成员位置找,找到了就使用,找不到就报错                         System.out.println(super.name);                        //输出 我是爸爸    super:表示从父类的成员位置开始找,找到了就使用,找不到就报错                 }         }         class Test{                 public static void main(String[] args) {                         Zi zi = new Zi();                         zi.show("呵呵");                 }         }
回复 使用道具 举报
this指向对象本身,谁调用就指向谁,可以理解为它所在的类的类名,用来区分成员变量与局部变量重名。this只有在创建对象后才能存在,所以在静态方法中不可使用this,因为静态的方法是优先于对象存在的。
回复 使用道具 举报
楼主,你好!很高兴回答您的问题!
this代表当前对象。意思是“我的”,楼主可以这么理解,不会有任何问题。
解决这个问题有两个方法,一个是通过在开发工具中,将源代码写下,源代码会自动将两个name用不同颜色标记,这样你一看就能区分它们,并一眼能看出它们的含义了。
好的,如果上面的方法还不能完全帮你解决问题,那么请听我用代码给您解释:代码如下:
public class Test05 {

        public static void main(String[] args)
        {
                Person p1=new Person();
                p1.age=18;
                p1.Print(p1.age);
        }
       
}
class Person
{
        int age=0;
       

        public void Print(int age)
        {
               
                this.age=age;
                System.out.printf("我的年龄是%d",age);
        }
       
}
我先讲一下他们之间的关系:其实很简单的,楼主听一下就懂:
this.age这里的age 代表当前类person中的属性age.而等号右边的age其实是方法的形参。
我们的语言其实有一点挺好的,为什么会有this的出现呢?因为有了this,系统会告诉编绎器,哪个是属于当前类的,哪个是形参传进来的。
好的,第二层意思是:我们都知道,调用方法要用到对象,只有有了对象,才能调用方法,好了。当我们用对象调用一个方法的时候,这个方法如果有this关键字,那么,这个this 关键字可以理解为这个对象本身。
这么说应该明白了吧?
纯手打的,满意请采纳,谢谢!
回复 使用道具 举报
(1)this:代表当前对象的引用,谁来调用我,我就代表谁
                (2)super:代表当前对象父类的引用
                (3)this和super的使用区别
                        a.调用成员变量
                                * this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
                                * super.成员变量 调用父类的成员变量
                        b.调用构造方法
                                * this(...)        调用本类的构造方法
                                * super(...)        调用父类的构造方法
                        c.调用成员方法
                                * this.成员方法 调用本类的成员方法,也可以调用父类的方法
                                * super.成员方法 调用父类的成员方法
回复 使用道具 举报
this关键字的理解
                (1)this只能代表本类对象
                (2)this代表所属函数(方法)的所属对象
                (3)谁来调用我,我就代表谁
                (4)this可用于区分成员变量和局部变量同名的情况
                    
回复 使用道具 举报
楼主你好!
这个问题是初学者一般容易比较蒙圈的地方。
其实一旦弄清楚它的原理,就很容易理解了。
java是为了区分当前类的属性和函数传进来的参数所以才引入了this的概念。这一点希望楼主先弄明白。
当前类的属性假如已经定义了一个属性叫name,但是函数有一个参数也叫name,那么想把实际传给形参的name赋值给当前类的属性name时,编绎器就搞不懂你写的name到底是哪个name,你想把哪个name赋值给哪个name. 所以,为了能够区分开,就加入了this关键字。
this关键字的意思是“我的”,就代表当前类的对象。哪个对象调用了这个函数,那么这个对象的name就用this.name来表示。希望楼主明白。
纯手打的,满意请采纳,谢谢!有不懂的还可以继续提问哦。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马