内容导航:
- 前言
- 1、this关键字
- 2、this关键字用途
- 2.1、this关键字代表类自身
- 2.2、代表自身类的当前对象
前言
this关键字其实与继承没有关系,之所以放在这里学习,是因为this和super很容易让初学者感到迷茫。
1、this关键字
this和super的都有两大作用,即调用属性和方法,调用构造方法。区别是,this调用的都是本类的,super调用的都是父类的。
2、this关键字用途
this关键字既可以代表类自身,也可以代表自身类的当前对象。
2.1、this关键字代表类自身
使用this关键字在自身构造方法内部引用其它构造方法。
在一个类的构造方法内部,也可以使用this关键字引用其它的构造方法,这样可以降低代码的重复,也可以使所有的构造方法保持统一,这样方便以后的代码修改和维护,也方便代码的阅读。
例:
public class Demo {
private int a;
private int b;
public Demo() {
// this引用构造方法
this(1, 2);
}
public Demo(int a, int b) {
super();
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
2.2、代表自身类的当前对象
this关键字可以代表自身类的对象。
- 直接使用this
- 使用this关键字引用成员变量
- 使用this关键字引用成员方法
注意:this关键字必须放在非静态方法里面
this代表自身对象
在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this
public class Demo {
private Demo instance;
public Demo() {
instance = this;
}
}
this引用成员变量
在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,常常用来区分同名的成员变量和局部变量。
public class Demo {
private int a;
private int b;
public Demo() {
}
public int getA() {
return a;
}
public void setA(int a) {
// this引用成员变量
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
// this引用成员变量
this.b = b;
}
}
this引用成员方法
在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用。
public class Demo {
public Demo() {
}
public void method1() {
//this引用成员方法
this.method2();
}
public void method2() {
}
}
持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!