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("内容不相等"); } } }
//当前对象:当前正在调用类中方法的对象称为当前对象 |
|