java也有this,用法盘点

2022-07-27,,,

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

《java也有this,用法盘点.doc》

下载本文的Word格式文档,以方便收藏与打印。