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。
--来源:考试大
分享到:
相关推荐
Java 中 this 的使用 在 Java 中,this 是一个非常重要的关键字,它可以用来指代对象自己本身。在 Java 中,this 主要有三种用法:指代当前类的属性、指代当前类的方法和指代当前类的构造函数。 1.this 指代当前类...
当在类的方法中使用 `this` 时,它通常用来区分局部变量和成员变量。在 `ThisTest` 类的构造器中,`this.i = i + 1;` 这一行代码,`this.i` 引用的是类的成员变量 `i`,而 `i` 是构造器的参数。这里 `this` 用于...
Java 中 this 与 super 的用法 Java 中的 this 和 super 是两个非常重要的关键字,它们都是用来访问对象或父类的成员变量或方法的。下面我们将详细地讲解它们的用法和区别。 首先,让我们来看一下 this 关键字。...
Java中this内存原理图示
`this`关键字在类的方法或构造器中使用时,它总是指向调用该方法或构造器的那个对象。这意味着`this`是当前对象的引用,可以帮助我们区分局部变量和实例变量。 2. **访问实例变量** 当类中存在同名的实例变量和...
Java 中的 this 和 super 的用法 Java 中的 this 和 super 是两个非常重要的关键字,它们都是用来访问对象的成员变量和方法的。下面我们将详细地讨论这两个关键字的用法和区别。 一、基础知识 1. super(参数):...
java中this 与super的详解
要注意的是this只能在类中的非静态方法中使用, 静态方法和静态的代码块中绝对不能出现this。this也可作为构造函数来使用。在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针, 而...
`this`可以作为方法的参数传递,将当前对象传递给其他方法或类,通常在事件处理或回调中使用。例如: ```java public class Button { public void onClick(ClickHandler handler) { handler.handle(this); // ...
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中...
- **引用当前对象的属性**:可以在方法或构造器中使用`this`来引用当前对象的属性。 ```java public class Person { private String name; public void setName(String name) { this.name = name; // 使用this...
Java 中 this 与 super 用法 在 Java 中,this 和 super 是两个重要的关键字,它们都是用于访问当前对象或父类中的成员变量或方法的。 this 用法 this 的用法在 Java 中大体可以分为三种: 1. 普通的直接引用 在...
在 Java 中,this 关键字有多种用法,本文将详细介绍 Java this 用法。 一、使用 this 访问成员变量 在 Java 中,this 关键字可以用来访问当前对象的成员变量。当在一个类中要明确指出使用对象自己的属性或方法时...
### Java中this与super的详细区分 在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们分别用于引用当前对象和父类的对象。正确理解和使用这两个关键字对于编写高质量、易于维护的代码至关重要。 ####...
今天突然想到this的问题,搜了一波,终于找到个能用的,建个项目main运行一下就清楚多了。
在 Java 编程语言中,this 关键字是一个非常重要的概念,它有多种用法,但基本上可以归纳为三种:表示当前对象的引用、表示类的成员变量和在构造方法中引用满足指定参数类型的构造器。下面将详细介绍这三种用法。 ...
以下是对`this`在Java中使用的详细解释: 1. **成员变量与局部变量的区分:** 当类中的局部变量(方法内的变量)和成员变量(类级别的变量)名称相同时,`this`可以帮助我们明确地引用成员变量。例如: ```java ...
当在类的方法或构造器中使用`this`时,它指代的就是正在创建或正在使用的对象实例。 例如,假设我们有一个名为`Person`的类,它有两个实例变量`firstName`和`lastName`: ```java public class Person { private ...
Java语言中This关键字应用浅析,看完后帮助于JAVA中类的操作。