this关键字在Java中表示以下概念:
|·调用类中的属性:this.属性;
|·调用类中的方法:this.方法();
|·调用类中的构造:this();
|·表示当前对象
1:(调用类中的属性和方法)
class Person{
private String name;
private int age;
public Person(String name, int age){
this.setName(name); //调用类中的方法
this.setAge(age);
}
public void setName(String name){
this.name = name; //调用类中的属性
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
public class Test{
public static void main(String [] args){
Person per = new Person("张三",30);
System.out.println("姓名:" + per.getName() + "年龄:" + per.getAge());
}
}
//使用this关键字完美解决属性name与局部变量name的命名冲突。并且让程序更加通俗易懂。
2:(调用类中的构造:)
现要求无论调用哪一个构造方法,都必须打印 我被调用了!
class Person{
private String name;
private int age;
public Person(){ //无参构造
System.out.println("我被调用了!");
}
public Person(String name){
this(); //调用无参构造
this.setName(name);
}
public Person(String name, int age){
this(name); //调用有一个参数的构造
this.setName(name);
this.setAge(age);
}
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
public class Test{
public static void main(String [] args){
Person per = new Person("张三",30);
System.out.println("姓名:" + per.getName() + "年龄:" + per.getAge());
}
}
//以上代码无论是哪一个构造方法被调用,都会打印输出 我被调用了!而且提高了代码的重用性。
//调用类中的构造时,this()必须写在构造方法的第一行,并且在所有的构造中至少有一个不被调用。
//使用this()调用类中的构造方法,代码量减少了,代码的重用性提高了。
3:(表示当前对象)
class Person{
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public boolean compare(Person per){
if(this.name.equals(per.name) && this.age == per.age){
return true;
}
else{
return false;
}
}
}
public class Test{
public static void main(String [] args){
Person per1 = new Person("张三",30);
Person per2 = new Person("张三",30);
if(per1.compare(per2)){
System.out.println("内容相等");
}
else{
System.out.println("内容不相等");
}
}
}
//当前对象:当前正在调用类中方法的对象称为当前对象
原文:http://www.cnblogs.com/breezejin/p/6357661.html