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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑白小調° 中级黑马   /  2014-1-14 08:23  /  1054 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this关键字和对象都可以调用成员变量和成员方法,那么他们之间有什么样的关系呢?

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
本帖最后由 xu6148152 于 2014-1-14 08:37 编辑

this指向当前的对象。
如class A
{     private int num=0;
     A(int num)
     {
          this.num=num;//因为类的属性num和构造函数的参数num一样,所以要使用this来访问类的num.
     }
}

A a=new A();
这个时候this就跟a指向同一个内存地址。
this关键字一般在类的内部使用,表示当前的对象。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 很给力!

查看全部评分

回复 使用道具 举报
this可以引用本类的对象,this是用于区分局部变量和成员变量的同名情况。当定义类中功能时,该函数内部要用到该功能的对象时,时用this来表示这个对象,但凡奔雷功能内部使用了本类对象,都用this来表示。
对象可以new其他类的对象。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 赞一个!

查看全部评分

回复 使用道具 举报
很简单,通过类来创建对象,而且这个类可以创建N个对象,每个对象的哈希码值也是不一样的,除非直接以等号的形式赋值,比如:
Person p = new Person();
Person p2 = p;
那么p和p2所指向的哈希码值是一样的,也就是说,他们指向同一个对象。
关于this和对象的关系,this代表本类对象的引用(也可以说成this是所在函数所属对象的引用),也就是说哪个对象调用了this所在的函数,那么this就代表哪个对象。
当成员变量和传入的局部变量同名时,那么可以用this来区分,比如
public static void main(String[] args)
{
     String name="张三";
}
class Person
{
     private String name;
     public void setName(String name)
     {
          this.name = name;
    }
}
this也可以用于在构造函数中用来调用其他的构造函数,比如
class Person()
{
    String name;
    Person()
    {
       this(name);//必须定义在第一行,因为初始化动作要先完成,这个是规则。
    }
    Person(String name)
    {
       this.name = name;
    }
}

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 很给力!

查看全部评分

回复 使用道具 举报
this关键字和对象都可以调用成员变量和成员方法,那么他们之间有什么样的关系呢?
  这个问题:对象调用成员变量和成员方法时,这里构造函数的成员变量和成员方法和要传的值不能相同,如果相同则必须要用到this关键字,this用来区分局部变量和成员变量,否则系统都是为局部变量。这里this代表主函数中那个建立的对象调用,那么this就代表调用的那个。
例:
class Perason
{
       private   int age;
       private String name;
       Person(String name,int age)  
      {.
              this.name=name;
              this.age=age;
      }                  
}
class Person1
{
     public static void main(string [] args)
     {
            Person p=new Person("zhangsan",20)
     }
}
这时当建立对象p时,this就代表对象p,总之对于提问者的问题就是this用于区分成员变量和所传的局部变量同名时的问题

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马