使用this引用成员方法


/**
* 引用成员方法
* @author zhouyu260
*
*/
public class ReferenceMethod {

public void r1(int a){
System.out.println(a);
}

public void r2(int a){
this.r1(a);
}

public static void main(String[] args) {
ReferenceMethod rm = new ReferenceMethod();
rm.r2(8);
}
}
this引用的是调用成员方法的对象”这一表述在大多数情况下是正确的。当this出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,只能是当前类的实例;只有当这个方法被调用时,它所代表的对象才被确定下来,即是谁在调用这个方法this就代表谁。例如在Java里,定义一个类并创建其实例来调用方法时,this就指向调用该方法的对象实例 [^1]。 以下是一个Java代码示例,可清晰展示this引用调用成员方法的对象: ```java class Person { String name; public Person(String name) { this.name = name; } public void sayHello() { System.out.println("Hello, my name is " + this.name); } } public class Main { public static void main(String[] args) { Person person = new Person("Alice"); person.sayHello(); } } ``` 在上述代码中,`person.sayHello()`调用方法时,`sayHello`方法里的`this`就引用了`person`这个对象,所以`this.name`实际上就是`person.name`。 在JavaScript里同样存在类似情况,不过JavaScript的this指向相对复杂一些,但在对象方法调用时,this通常指向调用该方法的对象。例如: ```javascript let user = { name: "John", sayHi() { console.log(this.name); } }; user.sayHi(); ``` 这里调用`user.sayHi()`时,`sayHi`方法中的`this`就指向`user`对象,因此`this.name`就是`user.name` [^2]。 不过,this的指向并非总是调用成员方法的对象,像在箭头函数中,this指向定义该箭头函数的对象,而非调用该函数的对象;使用`call`、`apply`、`bind`方法也能改变this的指向。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值