欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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调用成员变量或者方法
例如:
java也有this,用法盘点

2、使用this区分同名变量,特别是和形参区分
成员变量与方法内部的变量(或者形参)重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this,例如:
java也有this,用法盘点

这个例子也侧面验证了局部变量会覆盖成员变量,这一点和C++是一样的。

形参和成员变量同名,这非常常见,例如在构造方法里用形参给成员变量初始化,或者是设置私有成员变量的值的方法。

3、调用本类的其它构造方法,它必须作为构造方法的第一条语句。
这个用法挺奇葩的,C++没有这种用法。
java也有this,用法盘点
这个例子里实现了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