简单来说this就是表示这个class类 就像第一个代码中的demo2
super表示这个子类的父类
this用法
(1)this调用本类中的属性,也就是类中的成员变量,用来区分成员变量和局部变量(重名问题)
public class demo2 {
int age = 10;//定义一个成员变量
public demo2() {
System.out.println("初始化变量的值为:" + age);
}
public demo2(int age) { //参数(局部变量)
this.age = age; //将局部变量的值传递给成员变量
System.out.println("构造方法传递的值:" + age);
}
public int GetAge1(int age) {
this.age = age;
return this.age;
}
public int GetAge2() {
return this.age;
}
public static void main(String[] args) {
demo2 david1 = new demo2();
System.out.println("david1的年龄是:" + david1.GetAge1(12));
demo2 david2 = new demo2(20);
System.out.println("david2的年龄是:" + david2.GetAge2());
}
代码中将局部变量(传递的参数)的值传递给成员变量,如果不加this 最后输出的是最开始初始化并赋值的age为10。
类我的理解是像一个模版,抽象出多个对象共有的属性
(2)this调用类中其他构造方法,调用时要放在构造方法的首行
public class demo2 {
int age;
public demo2() {
this(100);
}
public demo2(int age) {
this.age = age;
}
public int GetAge() {
return this.age;
}
public static void main(String[] args) {
demo2 david1 = new demo2();
System.out.println("david1的年龄是:" + david1.GetAge());
}
}
新建david1对象调用无参数的构造方法 在通过this调用带参数的构造方法
(3)返回对象的值
this关键字除了可以引用变量或者成员方法之外,还有一个重大的作用就是返回类的引用。
如在代码中,可以使用return this,来返回某个类的引用。
此时这个this关键字就代表类的名称。
如代码在上面demo2类中,那么代码代表的含义就是return demo2。
public demo2 GetAge() {
return this;
}
可见,这个this关键字除了可以引用变量或者成员方法之外,还可以作为类的返回值,这才是this关键字最引人注意的地方。