学了没学懂,想请大佬举个例子让我理解理解。
private void test1() {
test2();
this.test2(); // 只调用这个类
}
private void test2() {
}
test2();
this.test2(); // 只调用这个类
}
private void test2() {
}
本帖最后由 番茄茄 于 2020-3-26 20:08 编辑
这是一个C++的例子:
复制代码
这里我写了一个类,名字叫做MyClass;
MyClass有一个整数类型数据成员叫data;
MyClass有一个方法叫SetData,用于重新设置data的值,而且这个方法返回对象本身;
在main里的操作就是,创建了一个MyClass类的对象叫object,然后将object的值通过SetData方法设置为5,紧接着使用Display方法打印出来;
SetData函数在调用完后返回了对象本身,就可以很方便地继续调用其他方法了。
这是一个C++的例子:
- #include <iostream>
- class MyClass
- {
- private:
- int data;
- public:
- MyClass()
- : data(0)
- {
- }
- MyClass& SetData(const int newData)
- {
- data = newData;
- return*this;
- }
- const MyClass& Display()const
- {
- std::cout << data << std::endl;
- return*this;
- }
- };
- int main()
- {
- MyClass object;
- object.SetData(5).Display();
- return 0;
- }
这里我写了一个类,名字叫做MyClass;
MyClass有一个整数类型数据成员叫data;
MyClass有一个方法叫SetData,用于重新设置data的值,而且这个方法返回对象本身;
在main里的操作就是,创建了一个MyClass类的对象叫object,然后将object的值通过SetData方法设置为5,紧接着使用Display方法打印出来;
SetData函数在调用完后返回了对象本身,就可以很方便地继续调用其他方法了。
你可以这么理解
class Human extends Entity{
boolean removed=false;
public void die(){
removed=true;
server.removeEntity(this);
}
}
那么当我执行a.die()时,这里的this就指代a,同理,当我执行b.die()的时候this就指b
class Human extends Entity{
boolean removed=false;
public void die(){
removed=true;
server.removeEntity(this);
}
}
那么当我执行a.die()时,这里的this就指代a,同理,当我执行b.die()的时候this就指b
this=ldarg.0将方法的第0个参数压入堆栈,而实例的this指针总是第0个参数。
说过简单一点:this代表自己这个类。
比如aaa b;这时,aaa里的this就等同于b。
比如aaa b;这时,aaa里的this就等同于b。