Hi一起来了解下Java中的this的使用场景吧

转载:

博客园:不可触及
博客园:LivterJA

基础知识

如果要谈this那么首先需要知道在java中一个类的初始化过程,也就是当代码中调用new的时候,底层程序的执行过程:

  • 给即将初始化的对象分配存储空间
  • 将该类定义中的成员变量初始化为指定的值或者默认值【比如int缺省值为0,double缺省值为0.0】
  • 执行构造函数内部逻辑,一般是初始化成员变量具体的值
  • 返回对象,此时第一步分配的存储空间就拥有了具体的意义

在以上四个步骤中,都有this的影子,因为在java中,this可以指代的是当前的对象,所以在该对象从产生到回收的生命周期中,都有this陪伴着。

this的定义

this的本质就是“创建好的对象的地址”, 由于在构造方法调用前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象” 。

使用场景

  1. 在程序中产生二义性之处,应使用this来指明当前对象:

    普通方法中,this总是指向调用该方法的对象;

    构造方法中,this总是指向正要初始化的对象。

  2. 使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。

  3. this不能用于static方法中:

因为static中并不是属于某一个类下的范围,所以this无法确认自己到底是哪一个类的地址【this不知道自己要陪伴哪一个类】,所以此时this就无法使用,在java代码中,static体中使用this会报错
在这里插入图片描述

具体实例:

  1. this代表当前对象
    在这里插入图片描述

  2. this()调用重载构造方法
    在这里插入图片描述

  3. 当参数和成员变量重名时,不使用this时,程序会使用就近原则使用变量

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值