this关键字的作用
1.表示类中的属性
2.可以使用this调用本类的构造方法
3.this表示当前对象
1.1 this 调用本类中的属性
class Person {
private String name; // 姓名
private int age; // 年龄
public Person(String name,int age){ // 通过构造赋值
this.name = name ; // 明确表示为类中的name属性赋值
this.age = age ; // 明确表示为类中的age属性赋值
}
public String getInfo() { // 取得信息
return "姓名:" + name + ",年龄:" + age;
}
}
public class ThisDemo02 {
public static void main(String[] args) {
Person per1 = new Person("张三",33) ; // 调用构造实例化对象
System.out.println(per1.getInfo()) ; // 取得信息
}
}
2.1 使用this调用构造方法
避免代码重复,让构造方法之间互相调用,使用this(若干参数)的形式完成.
如果一个类中有多个构造方法的话,也可以利用this关键字互相调用。
假设现在要求不管类中有多少个构造方法,只要对象一被实例化,就必须打印一行“新对象实例化”的信息出来,很明显,此时如果在各个构造方法中编写此输出语句肯定不合适,所以此时就可以利用this的概念完成。
package demo0309;
public class Test1 {
public static void main(String[] args) {
Person p=new Person("呵呵呵",12); //调用有参构造
System.out.println(p.getInfo()); //输出信息
}
}
class Person{
private String name; //私有化姓名
private int age; //私有化年龄
public Person() { //无参构造
System.out.println("一个新的Person对象被实例化! ");
}
public Person(String name,int age) {
this(); //此处调用Person类中的无参构造方法
this.name=name;
this.age=age;
}
public String getInfo() { //取得信息
return "姓名: "+name+" 年龄 :"+age;
}
}
使用this调用构造方法必须也只能放在构造方法的第一行。
3.1this表示当前对象,在java中当前对象就是指当前正在调用类中方法的对象。
class Person {
public String getInfo() {
System.out.println("Person类 --> " + this); // 直接打印this
return null ; // 此处返回null,为的是让语法不出错
}
}
public class ThisDemo06 {
public static void main(String[] args) {
Person per1 = new Person() ;
Person per2 = new Person() ;
System.out.println("MAIN方法 --> " + per1); // 直接打印对象
per1.getInfo() ;
System.out.println("--------------------------") ;
System.out.println("MAIN方法 --> " + per2); // 直接打印对象
per2.getInfo() ;
}
}
静态方法中不能使用this关键字