最近发现this真是无处不在,看的越多越感觉模糊不清(自己好水啊),为了不让自己太难受还是多了解一下吧
书上介绍了三种this的常见用法,回顾一下:
- 通过this关键字可以明确的访问一个类的成员变量,解决与局部变量命名冲突的问题
- 通过this关键字调用成员方法
- 可以在一个构造方法中使用this()的形式来调用其他的构造方法
class Car
{
private String carName;
public Car(String carName)
{
this.carName=carName;
}
public void show()
{
System.out.println("我是"+carName+",具有基本功能");
}
}
class RadarCar
{
public Car myCar;
public RadarCar(Car myCar)
{
this.myCar=myCar;
}
public void show()
{
myCar.show();
System.out.println("还具有雷达功能");
}
}
public class TestMain
{
public static void main(String[] args)
{
Car benz=new Car("benz");
System.out.println("---------包装前---------");
benz.show();
RadarCar decorateCar_benz=new RadarCar(benz);
System.out.println("---------包装后---------");
decorateCar_benz.show();
}
}
看一下控制台输出
-
当传入的参数为字符串“benz”时,this关键字使成员变量carName获得局部变量的值
(new 类名()除了会实例化类对象外还会调用构造方法) -
当传入的参数为对象benz时,this.mycar=benz;即mycar.show()等价于benz.show();