东陆风华BBS

 找回密码
 注册东陆风华通行证
东陆风华论坛18周年庆(2005.3.28-2023.3.28)东陆风华-云南大学各专业历年考研复试信息汇总帖送人玫瑰手留余香-云南大学历年考研复试信息汇总
东陆风华-云南大学各学院考研QQ群号码
申请东陆风华实名认证免费领取云大考研考博真题如何申请云南大学考研论坛VIP会员?VIP特权?
东陆风华-云南大学各省校友&云南省各地州校友QQ群云南大学呈贡校区图片 &宿舍图片&图片云大 东陆风华送人玫瑰手留余香-云南大学2021年考研复试信息分享
返回列表 发新帖
查看: 1431|回复: 0

java中的this关键字

[复制链接]

该用户从未签到

发表于 2010-12-11 14:10:00 | 显示全部楼层 |阅读模式

东陆风华帐号全站通用,包括论坛、商城、网络家园等站点,登陆查看更精彩内容

您需要 登录 才可以下载或查看,没有帐号?注册东陆风华通行证

x
java中的this关键字

java 私塾跟我学系列——JAVA篇  网址:www.javass.cn

关键字 this 是用来指向当前对象或类实例的,功能说明如下:

1:点取成员

this.day 指的是调用当前对象的 day 字段,示例如下:


  1. public class MyDate {
  2.   private int day, month, year;
  3.   public void tomorrow() {
  4.     this.day = this.day + 1;
  5.       其他代码
  6.   }
  7. }
复制代码


Java 编程语言自动将所有实例变量和方法引用与 this 关键字联系在一起,因此,使用关键字在某些情况下是多余的。下面的代码与前面的代码是等同的。


  1. public class MyDate {
  2.   private int day, month, year;
  3.   public void tomorrow() {
  4.     day = day + 1;  在 day 前面没有使用 this
  5.     其他代码
  6.   }
  7. }
复制代码


2:区分同名变量

也有关键字 this 使用不多余的情况。如,需要在某些完全分离的类中调用一个方法,并将当前对象的一个引用作为参数传递时。例如:

Birthday bDay = new Birthday (this);

还有一种情况,就是在类属性上定义的变量和方法内部定义的变量相同的时候,到底是调用谁呢?例如:


  1. public class Test{
  2.   int i = 2;
  3.   public void t(){
  4.     int i = 3; 跟属性的变量名称是相同的
  5.     System.out.println(“实例变量 i=”+ this.i);
  6.     System.out.println(“方法内部的变量 i=”+ i);
  7.   }
  8. }
复制代码


也就是说:“this.变量”调用的是当前属性的变量值,直接使用变量名称调用的是相对距离最近的变量的值。

3:作为方法名来初始化对象

也就是相当于调用本类的其它构造方法,它必须作为构造方法的第一句。示例如下:


  1. public class Test {
  2.   public Test(){
  3.     this(3);在这里调用本类的另外的构造方法
  4.   }
  5.   public Test(int a){
  6.   }
  7.   public static void main(String[] args) {
  8.     Test t = new Test();
  9.   }   
  10. }
复制代码
东陆风华APP客户端 http://bbs.ynutx.net/appbyme_app-download.html

本版积分规则

关闭

站长推荐上一条 /2 下一条

QQ|小黑屋|手机版|Archiver|东陆风华,凝聚云大人的力量 ( 滇ICP备07500061号-1 )

GMT+8, 2024-5-4 22:37 , Processed in 0.093750 second(s), 18 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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