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 实例变量。
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 关键字,但其实是在调用当前类的方法。
public class Person {
private String name;
private int age;
public Person() {
this("Unknown", 0);
}
public Person(String name) {
this(name, 0);
}
public Person(int age) {
this("Unknown", age);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的代码中,构造函数 Person() 调用了构造函数 Person(String name, int age) 以初始化 name 和 age 实例变量。
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 方法。
public class Person {
private String name;
private int age;
public Person() {
this("Unknown", 0);
}
public Person(String name) {
this(name, 0);
}
public Person(int age) {
this("Unknown", age);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的代码中,构造函数 Person() 调用了构造函数 Person(String name, int age) 以初始化 name 和 age 实例变量。
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 = new Person().setName("Alice").setAge(20);
这样,person 对象的 name 属性为 "Alice",age 属性为 20。
总结:
Java 中的 this 关键字主要用于引用当前类的实例变量、调用当前类的方法、调用当前类的构造函数、作为方法调用中的参数传递、在构造函数调用中作为参数传递、以及从方法返回当前类实例。这些用法可以让我们更方便地编写代码并避免一些常见的错误。
页面更新:2024-03-13
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号