Java 中的 this 要害字详解
怪人怪事 2023-05-04 19:36www.bnfh.cn怪人怪事
Java 中的 this 关键字详解
- 引用当前类实例变量 在Java类中,可以使用 this 关键字来引用当前类的实例变量,例如
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的代码中,this.name 和 this.age 引用了当前对象的 name 和 age 实例变量。
- 调用当前类方法(隐式) 在Java类中,可以使用 this 关键字来调用当前类的方法。在方法内部,可以省略 this 关键字来调用类中的其他方法,例如
public class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setPerson(String name, int age) {
setName(name);
setAge(age);
}
}
在上面的代码中,setPerson 方法内部使用 setName 和 setAge 方法时省略了 this 关键字,但其实是在调用当前类的方法。
- 调用当前类构造函数 在Java类中,可以使用 this 关键字来调用当前类的构造函数。在一个构造函数内部,可以通过调用其他构造函数来初始化当前对象,例如
public class Person {
private String name;
private int age;
public Person() {
this("Unknon", 0);
}
public Person(String name) {
this(name, 0);
}
public Person(int age) {
this("Unknon", age);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的代码中,构造函数 Person() 调用了构造函数 Person(String name, int age) 以初始化 name 和 age 实例变量。
- 方法调用中的参数传递 在Java方法调用中,可以使用 this 关键字将当前对象作为参数传递给其他方法,例如
public class Person {
private String name;
private int age;
public void print() {
System.out.println("Name: " + name + ", Age: " + age);
}
public void printPerson() {
print(this);
}
public void print(Person person) {
person.print();
}
}
在上面的代码中,printPerson 方法使用 this 关键字将当前对象作为参数传递给 print 方法。
- 构造函数调用中的参数传递 在Java构造函数调用中,可以使用 this 关键字将当前对象作为参数传递给其他构造函数,例如
public class Person {
private String name;
private int age;
public Person() {
this("Unknon", 0);
}
public Person(String name) {
this(name, 0);
}
public Person(int age) {
this("Unknon", age);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的代码中,构造函数 Person() 调用了构造函数 Person(String name, int age) 以初始化 name 和 age 实例变量。
- 从方法返回当前类实例 在Java方法中,可以使用 this 关键字从方法中返回当前对象,例如
public class Person {
private String name;
private int age;
public Person setName(String name) {
this.name = name;
return this;
}
public Person setAge(int age) {
this.age = age;
return this;
}
}
在上面的代码中,setName 和 setAge 方法返回当前对象,这样可以使用链式调用来设置多个属性,例如
Person person = ne Person().setName("Alice").setAge(20);
这样,person 对象的 name 属性为 "Alice",age 属性为 20。
Java 中的 this 关键字主要用于引用当前类的实例变量、调用当前类的方法、调用当前类的构造函数、作为方法调用中的参数传递、在构造函数调用中作为参数传递、以及从方法返回当前类实例。这些用法可以让我们更方便地编写代码并避免一些常见的错误。
奇闻怪事
- 黎姿老公马廷强前妻 黎姿老公马廷强前妻是谁
- 紫禁城闹鬼是真的吗 紫禁城闹鬼是怎么回事
- 80年黄河透明棺材事件 80年代黄河透明棺材始末
- 51区外星人录像是真的吗 51区外星人真的存在吗
- 姜潮麦迪娜恋爱过程 姜潮麦迪娜怎么认识的
- 根达亚文明大概离现在多久 根达亚文明距今多少
- 赤塔事件真的还是假的 赤塔事件到底怎么回事
- 百慕大三角在哪个国家 百慕大三角在哪个国家的
- 邓超出轨安以轩:邓超出轨安以轩是不是真的
- 中国十大闹鬼最凶的地方 中国十大闹鬼最凶的地
- 湘西鬼结婚事件:湘西鬼结婚事件真假
- 中国昆仑山10大灵异绝密档案 中国昆仑山10大灵异
- 李维嘉的父亲是谁 李维嘉父母是哪里人
- 朱秀华事件是不是真的 朱秀华事件的真相是什么
- 太湖冤魂:太湖冤魂事件真假
- 爪哇虎和东北虎谁厉害 爪哇虎和东北虎谁厉害一