java this 方法,使用“this”用方法(用Java)

what about using "this" with methods in Java? Is it optional or there are situations when one needs to use it obligatory?

The only situation I have encountered is when in the class you invoke a method within a method. But it is optional. Here is a silly example just to show what I mean:

public class Test {

String s;

private String hey() {

return s;

}

public String getS(){

String sm = this.hey();

// here I could just write hey(); without this

return sm;

}

}

解决方案

Three obvious situations where you need it:

Calling another constructor in the same class as the first part of your constructor

Differentiating between a local variable and an instance variable (whether in the constructor or any other method)

Passing a reference to the current object to another method

Here's an example of all three:

public class Test

{

int x;

public Test(int x)

{

this.x = x;

}

public Test()

{

this(10);

}

public void foo()

{

Helper.doSomethingWith(this);

}

public void setX(int x)

{

this.x = x;

}

}

I believe there are also some weird situations using inner classes where you need super.this.x but they should be avoided as hugely obscure, IMO :)

EDIT: I can't think of any examples why you'd want it for a straight this.foo() method call.

EDIT: saua contributed this on the matter of obscure inner class examples:

I think the obscure case is: OuterClass.this.foo() when accessing foo() of the outer

class from the code in an Inner class that has a foo() method as well.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值