Java中的this关键字

作为一名Java后端Giser,除了要有扎实的GIS理论基础、数据理解、分析和挖掘能力,首先要是合格的Java开发人员,虽然掌握Java中的基本语法、数据类型、数组、集合、泛型以及一些框架使用方法,就可以进行一些code的任务,但是如果想要在该领域走得更远,简单的基础知识是远远不够的,因此,有必要梳理一下Java的基础知识,对它有更为系统的认识和掌握。。。

this关键字总是指向该方法的调用对象。根据this出现的位置不同,this作为对象的默认引用有两种情况:

  • 在构造方法中引用该构造器正在初始化的对象
this(参数列表)
  • 在方法中引用调用该方法的对象
//调用变量
this.变量名
//调用方法
this.方法名(参数列表)

this可以代表任何对象,当this出现在某个具体方法中,它所代表的对象是不确定的,但它的类型是确定的,它所代表的只能是当前类的实例;当方法被调用时,它所代表的对象才被确定下来,谁调用这个方法,this就代表谁。

对于static修饰的方法而言,则可以直接使用类来调用,如果在static修饰的方法中使用this关键字,则这个关键字无法指向合适的对象。因此,Java中规定,静态成员不能直接访问非静态成员。

大部分的时候,普通方法访问其他方法,成员变量无需会用this前缀,但如果方法中有个局部变量和成员变量同名,但程序又需要在该方法中访问这个被覆盖的成员变量,就必须使用this前缀。

除此之外,this引用也可以在构造器中作为默认引用,由于构造器是直接使用new关键字来调用,而不是使用对象调用,所以this在构造器中代表构造器正在初始化的对象。

 

  • 拓展一,super表用父类构造器、变量和方法时的书写方式
//构造器中调用父类构造器
super(参数列表)
//调用父类变量和普通方法
super.变量名
super.方法名(参数列表)
  • 拓展二,this和super

构造方法中,this和super不能同时使用,若不存在this,会自动补充使用super,其实是为了保证父类对象初始化的唯一性。

  • 拓展三,构造器

构造器是一个特殊的方法,在创建对象时执行初始化。当创建一个对象时,系统为这个对象的实例进行默认初始化,这种默认初始化把所有的基本类型的实例变量赋值(对应类型的默认值),如果要改变这种默认初始化,想让系统创建对象时就为该实例的实例变量显式指定初始值,就可以通过构造器来实现。

构造器是创建Java对象的重要途径,通过new关键字调用构造器时,构造器确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的。实际上,当程序调用构造器时,系统会先为该对象分配内存空间,并为这个对象进行默认初始化,这个对象就已经产生了,即这些操作在构造器执行之前就已经完成了,也就是说,当系统开始执行构造器之前,系统就已经创建好了一个对象,只是这个对象还不能被外部程序调用,只能在构造器中通过this来引用。当构造器的执行体执行结束之后,这个对象作为构造器的返回值返回,通常会赋给另一个引用类型的变量,从而让外部程序可以访问该对象。

使用this调用另一个重载的构造器,只能在构造器中使用,而且必须作为构造器执行体的第一条语句,使用this调用重载的构造器时,系统会根据this后的实参来调用形参列表与之相对应的构造器。

 

声明:此内容整理自疯狂Java讲义

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值