java中当一个对象创建后,java虚拟机就会给这个对象分配一个指向自己的指针,称为this。this随实例化对象而产生,因此this只用于非静态方法体内。主要有以下四点应用:

1.调用当前类的成员变量。如:this.name;//访问本类中的成员变量name

2.调用当前类的成员方法。如:this.fun(params...);//访问本类中参数为params...的成员方法fun

3.表示当前类对象的引用。如:return this;//返回当前类对象的值

4.在当前类的构造方法中调用本类的其他构造方法。如:this(params...);//调用本类中参数为params...的构造方法

下面一一附代码说明:

1.

public class Student {
  String name;
  private void SetName(String name){
    this.name=name;
 }
}

如上述代码,若局部变量与成员变量同名时,便显示出了this的作用。this关键字引用的便是成员变量,一目了然,便是将形参name赋给了成员变量name

public class Student {
   private void out1(){
     System.out.print("123");
  }
   private void out2(){
      this.out1();
  }
}

如上述代码,out2()方法中利用this关键字调用了成员方法out1();需要注意的是,this关键字访问类的成员变量和成员函数时不受访问权限的控制,可以访问本类中包括private修饰的所有成员变量和方法。也可以通过this访问本类的static成员,不过由于static成员可以通过类名直接访问,如果通过this来访问会有警告信息。

3.

public class Student {
   private String name;
   public Student setName(String name){
     this.name=name;
     return this;
    }
}  

如上述代码,调用setName方法后,将形参赋给成员变量后,return this表示返回了Student对象引用。注意,return this返回的是调用this所处方法的那个对象的引用。切勿混淆。

4.

public class Student {
    private String name;
    private char sex;
    public Student(){
        this('男');
        this.name = "周瑜";
    }
    public Student(char sex){
        this.sex=sex;
    }
}

如上述代码,其中this('男')就是在第一个构造方法中调用了第二个构造方法,即没有参数的那个调用了有参数的那个。需要注意到是,其只能放在该构造方法体内的第一行,且不支持递归调用,即不能间接或直接地调用本身。

大乔注:若该类有派生类,则类中出现的关键字this的作用需注意:

1.在调用成员方法时,如果该方法被子类重写,则调用的是子类的成员方法,未被重写,则调用父类的成员方法。

2.return this中的this始终代表的是子类对象的引用。

3.调用成员变量和构造方法时,均是父类本类的,并无变化。

最新文章

  1. (转载)CentOS6下 源代码方式安装openERP7.0
  2. 在vs2005中使用AnkhSvn服务端IP改变无法连接
  3. 可视化PK纯代码
  4. flashback database 基本介绍一
  5. jquery 插件页面回到顶部
  6. cocos2d-x学习笔记1——Cocos2D-x 中的核心类
  7. Installing Ubuntu on a Pre-Installed Windows 8 (64-bit) System (UEFI Supported)
  8. 安卓4.2原生rom状态栏显示运营商
  9. WPF中TextBox限制输入不起作用的问题
  10. why constrained regression and Regularized regression equivalent
  11. 为什么说android UI操作不是线程安全的
  12. python3三角函数
  13. java版微信公众号支付(H5调微信内置API)
  14. 蓝桥杯近三年初赛题之一(15年b组)
  15. javascript的常用事件
  16. web机试
  17. CF418D Big Problems for Organizers 树的直径、ST表
  18. php常见问题-foreach和引用造成的问题。
  19. 【IIS错误 - HTTP 错误 500.19】HTTP 错误 500.19- Internal Server Error 错误解决方法(一)
  20. MySQL 各种主流 SQLServer 迁移到 MySQL 工具对比

热门文章

  1. SVN 安装与使用教程总结
  2. iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备
  3. 对Java中堆栈的解析
  4. 【java】io流之字节流转为字符流:java.io.OutputStreamWriter和java.io.InputStreamReader
  5. 数据分析与展示——Pandas数据特征分析
  6. IOS学习2——Xcode快捷键大全
  7. UIImage类方法总结及UIImage生成方法对比
  8. Linux 学习记录 三(Vim 文书编辑器).
  9. bzoj 4289: PA2012 Tax
  10. js 自定义html标签属性