注册
 找回密码
 注册
江西广告网
查看: 276|回复: 0
打印 上一主题 下一主题

Java学习之This的用处

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-28 12:10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  This是什么东西?对于从来没有学过面向对象语言的我来讲,是一件新鲜的事物,不过,它的用处到还挺多的。      首先来看一个程序:      public class Date       {          private int day=1;          public void tomorrow()          {             this.day = this.day 1;             System.out.println("day=" this.day);          }          public static void main(String args[])          {             Date date=new Date();             date.tomorrow();          }      }      这个程序的输出是“day=2”this实际上就是得到当前所在类的句柄,可以通过这个句柄对它的属性和方法进行操作。其实在上面的例子中,如果把this去掉,程序所得到的结果和上面这个程序所得到的结果是一样的。这是由于编译器可以自动完成默认的识别。那么看下面这个程序,只不过把上面的程序稍加改动,this的有无对程序有没有影响?      public class Date       {          private int day=1;          public void tomorrow(int day)          {             day = day 1;             System.out.println("day=" day);          }          public static void main(String args[])          {          Date date=new Date();             date.tomorrow(2);          }      }   同样的执行程序,会得到和上面程序不同的结果,它将会得到“day=3”这是因为此时产生了重名,在tomorrow这个函数中有了一个参数,也叫day,如果不使用this,直接使用day,java将认为是使用的这个参数,而不是类中所定义的私有变量day,如果要使用这个私有变量,就要用this来制定所用的这个day是类中所定义的,而不是函数中的参数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表