请教一下Java里this一什么作用
发布网友
发布时间:2022-05-02 17:15
我来回答
共5个回答
热心网友
时间:2022-06-21 00:39
我也来说几句吧,呵呵! 希望用通俗的语言,让你能明白this的作用!
其实this关键字是很容易理解的,下面我举两个例子作对比,可能你就看明白了:
<1>没有使用this的情况:
class A
{
private int aa,bb;//声明两个整形变量
public int returnData(int x,int y) //一个返回整形数的方法
{
aa = x;
bb = y;
return aa + bb;
}
}
<2>使用this的情况
class A
{
private int aa,bb;//声明两个整形变量
public int returnData(int aa,int bb) //一个返回整形数的方法
{
this.aa = aa;//第一个aa是全局变量的aa,后一个aa是参数aa
this.bb = bb;//第一个bb是全局变量的bb,后一个bb是参数bb
return (this.aa + this.bb);
}
}
结论:
上面的两个类,本质是相同的,而为什么在第<2>类中使用this关键字呢,注意到第<2>类中的方法returnData(int aa,int bb),形式参数分别为aa和bb,刚好和“private int aa,bb;”这里的变量名是一样的,现在问题来了:在returnData的方法体中如何区别形式参数aa和全局变量aa,两 个 bb也是如此?这就是引入this关键字的用处所在了!this.aa表示的是全局变量的aa,而没有加this的aa表示形式参数的aa,bb也是如此!
建议:
在编程中,过多的使用this关键字不是好方法。这从上面也看得出来,相同的变量名加上this关键字过多时,有时会让人分不清哪个是对哪个。这时可以使用以下方法修改,避免使用this关键字:
<3>
class A
{
private int aa,bb;//声明两个整形变量
public int returnData(int aa1,int bb1)
{
aa = aa1;//在aa后面加上一数字1加以区分,其他以此类推
bb = bb1;
return aa + bb;
}
}
总结:
可以看出,上面的<1>,<2>,<3>都是一样的,但<3>既避免了使用this关键字,又避免了<1>中x和y 这种参数意思不明确的缺点.所有建议使用<3>一样的方法!
以上是我的个人心得,原创发贴!希望你能看懂,呵呵!献丑了!
热心网友
时间:2022-06-21 00:39
1.使被屏蔽的变量可见,
2.调用当前的对象,每一个对象在使用时都有一this同它对应;
3.调用父类的被从写的方法,
热心网友
时间:2022-06-21 00:40
当两个变量名一样的时候,用来标志当前变量,尤其在实参和形参使用的时候用得比较多。
热心网友
时间:2022-06-21 00:40
这个实话实说
还是仔细翻翻书 或者自己查一下资料
毕竟属于比较常用又基础的东西
基本功扎实一点没坏处的
热心网友
时间:2022-06-21 00:41
this用来表示离当前位置最近的那个类