1.this关键字
(1)说明:this关键字用于表示本类当前对象(成员变量,成员方法),当前对象不是某个new出来的实体对象,而是当前正在编辑的类,this关键字只能在本类中使用。虽然我们知道this可以调用成员变量和成员方法,但Java语言中最常规的调用方式是使用“对象.成员变量(或方法)"进行调用。
(2)在局部变量或方法参数覆盖了成员变量时,添加this关键字明确引用的是类成员还是局部变量或是方法参数。
ps:在Java语言中每实例化一次对象,都会自动调用一次构造方法。
public class Test05 {
public String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//若没有关键字this,则变成this=this,这里的this指的都是局部变量,添加this后就升格为类变量
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
(3)通过this关键字可以调用成员方法或成员变量(一般省略this)
package two0116;
public class Test05 {
public String name;
private int age;
public void siHI(){
System.out.println("Hi~");
}
public void method(){
this.siHI();
siHI(); //11和12行均可
}
}
(4)仅在构造方法中访问构造方法使用this(参数1,参数2......);
public class Test05 {
public String name="zhang san";
private int age;
public Test05() {
System.out.println("我是无参构造");
}
public Test05(String name, int age) {
this();
this.name = name;
this.age = age;
System.out.println("我是有参构造");
}
public static void main(String[] args) {
new Test05("123",12);
}
}
// 结果为
// 我是无参构造
// 我是有参构造
注意事项:
(—):只能在构造方法内部用this调用构造方法,且this应放在构造方法内的第一行且只能出现一次。
(二):不能在一个类中的两个构造方法中(有参和无参构造)都用this(参数);互相调用,这样会陷入死循环。
(5)this可作为方法的返回值,例如返回图书类本类的对象
public Book getBook(){
return this; //返回Book类的本类对象
}
人类完整版
public class People {
String name;
int age;
public People() {
}
public People(String name, int age) {
this.name = name;
this.age = age;
}
public People getPeople(){
return this;
}
public void say(){
System.out.println("*****");
}
}
2.super关键字
成员变量
this.成员变量 - 访问本类成员变量
super.成员变量 -访问父类成员变量
成员方法
this.成员方法 - 访问本类成员方法
super.成员方法 -访问父类成员方法
构造方法
在构造方法内第一行 this(有参或空参) -访问本类构造方法
在子类构造方法内第一行 super(有参或空参) -访问父类构造方法
ps:this和super很像;参照着来准没错