私有方法调用约定

时间:2010-10-28 08:03:29

标签: java convention

我刚刚开始学习Java。我有一个问题更多关于Java中使用的约定......

假设我有A类:

public class A {
  public void methodA{
    methodB();
  }

  private void methodB{
  }
}

有时我会看到有些人使用这个(例如这个 .methodB();)在课堂内调用私有方法,即使没有歧义。明确地向人们展示他们正在调用私有方法,还是仅仅是某人的'style'

3 个答案:

答案 0 :(得分:2)

使用this本身并不清楚。它可以指向:

  • 实例字段(或方法)或this的内部类,无论其可见性如何。
  • this类继承的类之一的静态字段或方法或嵌套类。 (在这种情况下通常会有警告,但这只是一个警告)。

它阻止的是:

  • 静态导入
  • 局部变量
  • 类导入(如果您有一个与导入类同名的嵌套类)

我要强调的是,它并不能保证所调用的方法是私有的。

这是我第一次听到这条规则 - 我怀疑,它至多是公司的一种(不是那种有用的)风格规则。

答案 1 :(得分:1)

那只是风格。就个人而言,我在某种程度上喜欢在访问成员时过于明确,但我也能理解人们发现它很难看,特别是如果你在内部类中使用外部类的方法或属性:

 public class Outer {

       private SomeType member;

       private class Inner {
          public void innerMethod() {
              Outer.this.member.someFunction();
          }
       }
 }

在极少数情况下,如果您在不注意的情况下引入名称阴影问题,可能会有所帮助 - 突然之间您正在调用错误的函数或访问错误的变量。尽管如此,使用this进行排位仍然很详细,而且这不是一般规则。

答案 2 :(得分:0)

稍微偏离主题,因为我们没有解决私有方法,而是私有类变量,但值得一提的是,有时this是防止歧义所必需的:

public class Example {

  private RowMapper rowMapper;

  public void setRowMapper(RowMapper rowMapper) {
    this.rowMapper = rowMapper;
  }
}

总的来说,在没有歧义的情况下,this是冗余语法。