this关键字

this关键字

一、了解this用处

this:在程序里面,使用this可以访问本类中的属性,方法,表示出当前对象

1.使用this访问属性

 

但是以上的程序里面有一点不是很好,在构造方法上

 

构造方法的主要目的是为了类之中的nameage两个属性初始化,但是构造方法里面参数的名字并不清楚。既然目的是为属性传递数据,那么最好将参数名称和属性名称保持一致

改造如下:

 

如果按照此类的方式修改,发现nameage两个属性的并没有内容。因为在构造方法里面操作的nameage和类之中的属性无关,只与构造方法的参数有关(以{}为查找范围);

所有的程序都以{}作为边界,所有的取用都是以就近取用,若按照此道理来讲,以上所操作的nameage实际上只是构造方法里面的两个参数而已。所以现在要想明确的指定出访问的是属性则在属性访问前加上一个this,使用this.属性的方式进行访问

最终改造如下:

 

结论一:以后所以编写的程序,都必须使用this访问本类属性。

2.this调用构造方法

如果要强调方法,在一个类之中应该有两类方法:普通方法和构造方法。如果调用本类中的普通方法,则建议在方法前加this”,使用“this.方法()”调用,但是在使用this的过程中还可以利用其实现构造方法的互调用

构造方法是在使用关键字new实例化类对象的时候使用到的,但是利用this()可以实现构造方法间的互调用操作

例子:

 

此时的构造方法已经成功实现了互调操作,但是在使用this调用构造方法的时也有一些限制:

1使用this调用构造方法时必须放在构造方法的首行

2在使用this()进行构造方法互相调用时,请至少保证留下一个出口。

即:不使用this调用其他构造;

3.this表示当前对象(开头)

所谓的当前对象严格来讲指的就是当前调用本类方法的对象;

例子:

 

输出结果:

 

4.引用传递分析(重点)

范例一:

 

 

Funp);就相当于Person temp=Person

这段程序使用了引用传递,在方法中只需要接收Demo类对象,就表示两个栈内存指向同一块堆内存空间,所做的修改一定可以保留下来;

范例二:

 

本题目解释只有一句话:字符串的内容一旦声明则不可改变;

 

本程序属于一个数值关系,传递到方法里面的数据就相当于一个数据的拷贝,至于方法里面如何修改与之前无关;方法的参数在执行完之后消失

对于String数据类型由于其本身的特性所决定的操作模式(不可改变的模式)那么如果觉得堆栈关系过于难以理解,就按照基本类型的方式理解;

范例三:

 

此范例和第一范例是一样的,String是一个引用数据类型,需要有堆栈关系


总结:this关键字

1)使用“this.属性”表示本类属性,而且在日后所有编写代码中,都要求写上“this

2)使用“this.方法()”可以调用本类普通方法;

3)使用“this()”表示调用本类构造方法,而且此代码要求放在构造方法的首行,并且多个构造之间不允许循环调用(留有出口);

4This表示当前对象:当前正在调用本类中方法的对象;


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值