关键字this是用来指向当前对象或类实例的。this.day指的是当前对象的day字段。
public class MyDate {
private int day, month, year;
public void tomorrow() {
this.day = this.day + 1;
// wrap around code...
}
}
Java编程语言自动将所有实例变量和方法引用与this关键字联系在一起,因此,使用关键字在某些情况下是多余的。下面的代码与前面的代码是等同的。
public class MyDate {
private int day, month, year;
public void tomorrow() {
day = day + 1; // no ` this. ' before ` day '
// wrap around code...
}
}
也有关键字this使用不多余的情况。如,需要在某些完全分离的类中调用一个方法并将当前对象的一个引用作为参数传递时。例如:
Birthday bDay = new Birthday (this);
public class MyDate {
private int day, month, year;
public void tomorrow() {
this.day = this.day + 1;
// wrap around code...
}
}
Java编程语言自动将所有实例变量和方法引用与this关键字联系在一起,因此,使用关键字在某些情况下是多余的。下面的代码与前面的代码是等同的。
public class MyDate {
private int day, month, year;
public void tomorrow() {
day = day + 1; // no ` this. ' before ` day '
// wrap around code...
}
}
也有关键字this使用不多余的情况。如,需要在某些完全分离的类中调用一个方法并将当前对象的一个引用作为参数传递时。例如:
Birthday bDay = new Birthday (this);
利用它主要是区分在方法中两个变量同名的问题。要是你不用同名的变量就可以不用THIS指针。
说白了,THIS主要就是引用自己类中的变量,方法等。
用得多的地方比如说在一个类中实现某定义的方法,给其成员变量赋值。
class Demo{
private int count; public init(int c){
this.count = c; //将参数C初始化其Demo对象的成员变量
}
}
class abc{
static int i;
static void xx()
{
this.i = 1; //此处编译出错。
}
}
以上代码就出错了,因为 static方法是属于类的,而不是对象的。所以这里不能用this
(类名.函数) 直接调用
因为this就是这个功能!
不过当你在别的类的时候,this就代表别的类的类名!