当前位置: 代码迷 >> J2SE >> 要不要添this
  详细解决方案

要不要添this

热度:40   发布时间:2016-04-23 19:36:57.0
要不要加this?
下面程序是一道考试题,第20行方法体里面的正确答案是




即20行:
public boolean isEmergent(){return this.isEmergency;}

这里的retrun后面的isEmergency为什么要加this?
因为我觉得这个policecar里面的一开始已经初始化了isemergency的值为false,也就是已经可以直接使用这个isemergency变量了,没必要加上this去调用。
实际上我删除了this.   程序照样没有报错,正常运行
请问站在考试的角度来看,这里到底需不需要加this?




package Interface;
abstract class Vehicle{
public Vehicle(){}
abstract void run();
}

interface Emergency{
boolean isEmergent();
void runRedLight();
}

class Car extends Vehicle{
public Car(){}
void run(){System.out.println("I'm a car");}
}
class PoliceCar extends Car implements Emergency{
boolean isEmergency = false;
public PoliceCar(){}
public PoliceCar(boolean b){this.isEmergency = b;}
public boolean isEmergent(){return this.isEmergency;}
public void runRedLight(){System.out.println("I'm running red light");}

}
public class Interface {
public static void main(String[] args) {
PoliceCar a = new PoliceCar(true);
a.runRedLight();
}
}

------解决思路----------------------
不管站在哪个角度加不加都一样~
------解决思路----------------------
你可以了解一下this关键字



注意方法会有动态绑定,属性没有
------解决思路----------------------
从运行的角度看,如果存在与成员变量重名的局部变量,而你要使用的是成员变量,那么就必须使用this,其他情况下是否使用没有差别;从代码可读性方面看,还是使用this,显式的指明正在使用的变量是成员变量比较好一些。况且,在使用IDE的情况下,输入this后通常后得到代码提示,可以减少输入错误。
------解决思路----------------------
加不加都一样,至于阅卷的人怎么想,那就不晓得了
------解决思路----------------------
按严格的语法必修加,但不加也不会报错。
  相关解决方案