java也有this,用法盘点
程序员文章站
2022-07-10 17:33:36
this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性(包括static方法)。C++里头this是一个指向自身的指针,所以借助this访问成员时需要使用箭头->。java里没有指针的概念,使用的是点.。1、通过this调用成员变量或者方法例如:2、使用this区分同名变量,特别是和形参区分成员变量与方法内部的变量(或者形参)重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this,例如:这个例子也侧面验证了局部变量会覆盖成...
this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性(包括static方法)。
C++里头this是一个指向自身的指针,所以借助this访问成员时需要使用箭头->。java里没有指针的概念,使用的是点.。
1、通过this调用成员变量或者方法
例如:
2、使用this区分同名变量,特别是和形参区分
成员变量与方法内部的变量(或者形参)重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this,例如:
这个例子也侧面验证了局部变量会覆盖成员变量,这一点和C++是一样的。
形参和成员变量同名,这非常常见,例如在构造方法里用形参给成员变量初始化,或者是设置私有成员变量的值的方法。
3、调用本类的其它构造方法,它必须作为构造方法的第一条语句。
这个用法挺奇葩的,C++没有这种用法。
这个例子里实现了Student的两个构造方法,第一个构造方法借助this调用了第二个构造方法。这样的好处是,第一个构造方法可以省去很多重复的代码,实现代码复用。
4、this本身可以作为参数传递。
下面这个例子,实现了一个自行车类和一个学生类。学生拥有一辆自行车,自行车关联了一个学生。在学生的构造方法里,将自身传递给自行车,创建一辆自行车。
class Bike{
Student stu;
public Bike(Student stu){
this.stu = stu;
}
}
public class Student {
int id;
String name;
Bike bike;
public Student(int id,String name) {
this.id = id;
this.name = name;
System.out.println(id);
System.out.println(name);
bike = new Bike(this);
}
public static void main(String[] arg) {
Student stu = new Student(10,"xiaoMing");
}
}
本文地址:https://blog.csdn.net/HandsomeHong/article/details/110291317
上一篇: 常见数据结构算法--二叉树的后序遍历序列