this的两种使用方法
this在自定义的类的方法中使用,有两种使用方法。
一、this指代具体的对象
在我编写本类方法时,有时可能会需要使用本类的对象,这时候我们利用this代替该对象。
比如在我们set的方法中。
在这里,我们有两个carNum,一个是我们要传进来的参数,另一个呢,是我们的成员变量。为了区分这两个,我们就用了this来代表我们这个类的一个对象。
此时的this的用法,就和你在类外去使用一个这个类的对象是一样的。this.carNum也就是我们这个类对象的carNum属性。单独的carNum呢,就是我们传进来的参数。同理,你也可以用this来访问本类中的方法。
不知道有没有人和我学的时候一样,有个困扰,既然是名字重了,那我给改个名字不就好了。
其实是可以的,至于为什么不这么做呢,我是下面这样理解的。
比如我们如果有个学生类,属性中有个 “姓名”,我们参数整了个 “叫啥”,其实可以解决问题,但总是容易给人造成困扰,我想要姓名,你给我弄了个叫啥来,那这个叫啥和姓名是一样的吗,还是不一样?这就会造成困惑。
当然,这也仅仅是我的个人理解。
二、this也可表示当前类的构造方法
在我们编写类的方法时,不能直接访问类的构造方法,但可以用this来表示类的构造方法。
例如:还是我们之前的Car类,我们在构造类时不一定每次传多少个参数,因此我们需要对我们的构造方法进行重载,在重载时,我们可以用 参数多的构造方法 调用 参数少的构造方法。
//仅展示Car中设计本次内容的三个构造方法
public Car(String carNum, String color, String logo, int num) {
this(carNum, color, logo); //this也可表示当前类的构造方法
this.num = num;
}
public Car(String carNum, String color, String logo) {
this(carNum, color);
this.logo = logo;
}
public Car(String carNum, String color) {
this.carNum = carNum;
this.color = color;
}
来源:CSDN
作者:大风刮地
链接:https://blog.csdn.net/qq_41549663/article/details/104448621