1.this是指当前对象自己。
当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:
public class A {
String s = "Hello";
public A(String s) {
System.out.println("s=" + s);
System.out.println("1->this.s=" + this.s);
this.s = s;
System.out.println("2->this.s=" + this.s);
}
public static void main(String[] args) {
new A("HelloWorld!");
}
}
运行结果:
s=HelloWorld!
1->this.s=Hello
2->this.s=HelloWorld!
在这个例子中,构造函数A中,参数s和类A的变量s同名,这时假如直接对s进行操作则是对参数s进行操作。若要对类A的变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对参数s进行打印结果;后面两行分别是对对象A的变量s进行操作前后的打印结果。
2.把this作为参数传递
当您要把自己作为参数传递给别的对象时,也能够用this。如:
public class A {
public A() {
new B(this).print();
}
public void print() {
System.out.println("HellofromA!");
}
}
public class B {
A a;
public B(A a) {
this.a = a;
}
public void print() {
a.print();
System.out.println("HellofromB!");
}
}
运行结果:
HellofromA!
HellofromB!
在这个例子中,对象A的构造函数中,用newB(this)把对象A自己作为参数传递给了对象B的构造函数。
3.注意匿名类和内部类中的中的this。
有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时假如我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:
public class A {
int i = 1;
public A() {
Thread thread = new Thread() {
public void run() {
for (;;) {
A.this.run();
try {
sleep(1000);
} catch (InterruptedException ie) {
}
}
}
};
thread.start();
}
public void run() {
System.out.println("i=" + i);
i++;
}
public static void main(String[] args) throws Exception {
new A();
}
}
在上面这个例子中,thread是个匿名类对象,在他的定义中,他的run函数里用到了外部类的run函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的run函数换一个名字,但这种办法对于一个研发到中途的应用来说是不可取的。那么就能够用这个例子中的办法用外部类的类名加上this引用来说明要调用的是外部类的方法run。
--来源:考试大
分享到:
相关推荐
this关键字的使用详细介绍:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不...
java this方法的使用 java this方法的使用 java this方法的使用
Java中this内存原理图示
java中this 与super的详解
要注意的是this只能在类中的非静态方法中使用, 静态方法和静态的代码块中绝对不能出现this。this也可作为构造函数来使用。在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针, 而...
哪些情况下使用this,以及如何使用,举例加说明,this与super比较
78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中的this.zip78.java中...
Java中this和super的用法。本文很详尽的描述了两者的区别。并用代码例证。
Java中的this和super的用法
对于java中this、super进行详细的解释
JAVA中this的使用
今天突然想到this的问题,搜了一波,终于找到个能用的,建个项目main运行一下就清楚多了。
java this关键字的使用包括代码及注释,适合初学者
JAVA中this的使用.docx
java中this与super用法
java中this和supper关键字的详细区分
Java语言中This关键字应用浅析,看完后帮助于JAVA中类的操作。
java中this的讲解
Java中static、this、super、final用法.doc
Java this用法