在编程过程中,经常会用到this,今天,来说一说Java中this的一些看法。
this是Java提供的一个关键字,它总是指向调用该方法的对象。
根据this出现位置的不同,主要有以下几种用法:
1.引用成员变量
public class A {
private int a; //在这里定义了一个全局变量a
public A(int a){
this.a = a; this.a指的是全局变量a 等号右边的a指的是int a
}
public int getA(){
return a;
}
public void setA(int a){
this.a = a; // 这个同理 等号右边的a是int a 左边的是全局变量a
//这个方法就是重新定义一下a
}
}
2.引用成员方法
public class Student {
Student(){ //定义一个Student方法
gender = "男";
}
private String gender = "";
private static String name = "";
public void standUp(){ //定义standUp方法
this.say(); //执行该方法时 调用的Student类下面的say方法,并执行
}
private void say(){ //定义say方法
System.out.println("仅供自身调用");
}
public static void main(String[] args) {
Student st = new Student();
st.standUp();
}
}
在默认情况下,因为调用关系都是对象本身的方法或者Field,所以this可以省略。
this关键字必须放在非静态方法里面.
3.代表自身类的对象
在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this。
public class A {
A a;
public A(){
a = this; //这里的this代表的是自身类型的对象
}
public void test(){
System.out.println(this);
}
}
4.在自身构造方法内部引用其它构造方法
public class A {
int a;
public A(){
this(0); //使用this调用了另外一个构造方法,其中0是根据需要传递的参数的值
}
public A(int a){
this.a = a;
}
}
需要注意的是,在构造方法内部使用this关键字调用其它的构造方法时,调用的代码只能出现在构造方法内部的第一行可执行代码。