this关键字
this
关键字是一个非常重要的概念,它指的是当前对象的引用。使用this
关键字可以访问当前对象的属性和方法。
-
引用当前对象的属性:当类的实例变量和局部变量或参数同名时,可以使用
this
关键字来区分它们。public class Example { private int value; public Example(int value) { this.value = value; // 使用this关键字引用实例变量 } }
-
调用当前对象的方法:可以使用
this
关键字来调用当前对象的另一个方法。public class Example { public void doSomething() { this.anotherMethod(); // 调用当前对象的anotherMethod方法 } public void anotherMethod() { // ... } }
-
在构造函数中调用另一个构造函数:在Java中,可以使用
this
关键字在构造函数中调用同一类中的另一个构造函数。public class Example { private int a; public Example() { this(1); // 调用带参数的构造函数 } public Example(int a) { this.a = a; } }
-
在返回语句中使用:在方法中,可以使用
this
来返回当前对象的引用。public class Example { public Example getNext() { return this; // 返回当前对象的引用 } }
-
在匿名内部类中使用:在匿名内部类中,
this
关键字指的是匿名内部类的对象,而不是外围类的对象。public class OuterClass { public void method() { new Thread(new Runnable() { public void run() { // this在这里引用的是Runnable的匿名类对象 } }).start(); } }
-
与
super
关键字区分:this
关键字引用当前对象,而super
关键字引用当前对象的父类。 -
在静态上下文中不能使用:由于静态方法或静态变量属于类而不是对象,因此在静态上下文中不能使用
this
关键字。 -
作为参数传递:可以将
this
作为参数传递给另一个方法,通常用于在回调或事件处理中传递当前对象的引用。
以下是一些Java中this
作为参数传递的示例:
回调接口示例
public class CallbackExample {
public void performAction(Callback callback) {
callback.doSomething(this);
}
public interface Callback {
void doSomething(CallbackExample example);
}
}
事件监听器示例
public class EventListenerExample {
public void addClickListener(ClickEventListener listener) {
listener.onClick(this);
}
public interface ClickEventListener {
void onClick(EventListenerExample example);
}
}
线程示例
public class ThreadExample {
public void startThread() {
new Thread(() -> {
// 在这里可以访问ThreadExample对象的属性和方法
}).start();
}
}
委托示例
public class DelegationExample {
public void setDelegate(Delegate delegate) {
delegate.doSomething(this);
}
public interface Delegate {
void doSomething(DelegationExample example);
}
}
方法链示例
public class MethodChainingExample {
public MethodChainingExample setProperty(String value) {
// 设置属性
return this; // 返回当前对象的引用,以便链式调用
}
}
标签:对象,void,Example,关键字,class,public
From: https://www.cnblogs.com/jmy3/p/18349693