JAVA中this指针

自己编写了一个小程序来说明一下this的用法      不一定正确,请大家指教

 

 

public class Person
{
   private int age;
   private String name;
  
   public void setAge(int age)
   {
         this.age=age;
     
   }
   public int getAge()
   {
      return age;
   }
   public void setName(String newname)
   {
      name = newname;
   }
   public String getName()
   {
      return name;
   }
  
}

 

 

public class TestPerson
{
    public static void main(String[] args)
    {
        Person p1 = new Person();
        Person p2 = new Person();
        Person p3 = new Person();
       
        p1.setAge(23);
        p2.setAge(140);
        p3.setAge(-11);
       
        p1.setName("SHIYAN");
        p2.setName("Lucy");
        p3.setName("Nobody");
       
        System.out.println(p1.getName()+"  is  "+p1.getAge());
        System.out.println(p2.getName()+"  is  "+p2.getAge());
        System.out.println(p3.getName()+"  is  "+p3.getAge());
    }
}

 

 

这里面的setAge()和setName()功能是一样的,但是编写的方法不一样,如果我们将setAge()中的this去掉或将setName中的形参变量变为name在这时会出现

public void setX(int x)

{

        x=x;

}

的形式。

 

可能我们觉得是正确的,但是因为变量的可见性,Person类的成员变量x在setXint x,)这个方法中是不可见的,所以,我们实际上是将形参x的值赋给了形参x根本没有给Person类的成员变量x进行赋值.。

this指针是一个隐含的指针,它是指向对象本身的,代表了对象的地址。

 

在方法接受形参x时,还接受Person的对象成员p1等的地址。这个地址被一个隐含的形参this指针所获取,它等同于执行this=&p1,所有对数据成员的访问都隐含地被加上了前缀this.。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值