Java中的this关键字用于引用当前对象或类的实例。 它可以在构造函数中用于调用任何其他重载的构造函数,但是此this关键字应该放在造函数的第一行。
this用于实例变量
package org.keyword;
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void workOnAssignment() {
// Working on assignment
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String args[]) {
Person e1 = new Person("Leo", 20);
System.out.println("Person's name : " + e1.getName());
System.out.println("Person's age : " + e1.getAge());
}
}
当你运行上面程序时,你将会得到以下输出结果:
Person's name : Leo
Person's age : 20
我们可以使用this关键字来为构造函数中的实例变量赋值。
this用于调用重载构造函数
如果你想调用同一类的重载构造函数,可以使用this关键字来调用。
如下所示:
package org.keyword;
public class PersonB {
String name;
int age;
public PersonB() {
System.out.println("Calling No arg constructor");
}
public PersonB(String name, int age) {
this();
System.out.println("Calling Parameterized constructor");
this.name = name;
this.age = age;
}
public void workOnAssignment() {
// Working on assignment
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String args[]) {
PersonB e1 = new PersonB("John", 20);
System.out.println("Person's name : " + e1.getName());
System.out.println("Person's age : " + e1.getAge());
}
}
当你运行上面程序时,你将会得到以下输出结果:
Calling No arg constructor
Calling Parameterized constructor
Person's name : John
Person's age : 20
请注意,用于调用另一个构造函数的this语句应该放在该构造函数中的第一行。
this用于返回类的对象
package org.keyword;
public class PersonC {
String name;
int age;
public PersonC(String name, int age) {
this.name = name;
this.age = age;
}
public void workOnAssignment() {
// Working on assignment
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public PersonC getPerson() {
System.out.println("Call method(getPerson) to return this");
return this;
}
public static void main(String args[]) {
PersonC e1 = new PersonC("John", 20);
PersonC e1Copy = e1.getPerson();
System.out.println("PersonC's name : " + e1Copy.getName());
System.out.println("PersonC's age : " + e1Copy.getAge());
}
}
当你运行上面程序时,你将会得到以下输出结果:
Call method(getPerson) to return this
PersonC's name : John
PersonC's age : 20
网友评论