在这样的类之后,如何使用“this”?

时间:2014-12-16 06:25:53

标签: java this

我不太清楚在这个例子中如何使用关键字this

private void checkForComodification() {
    // The this I'm concerned about is the first one
    if (CyclicArrayList.this.modCount != this.modCount)
        throw new ConcurrentModificationException();
}

2 个答案:

答案 0 :(得分:5)

你有时需要内部课程。

this指向内部类实例本身。

MyOuterClass.this指向包含的类实例。

在您的情况下,这是必要的,因为这两个类都有modCount属性(外部类CyclicArrayList中的属性在此处被遮蔽)。

答案 1 :(得分:3)

它用于你想在"外部"中使用属性或方法的内部类。范围与当前类中的范围相同。

默认情况下,这个' keyword是指当前的类范围,如果没有此功能,您将无法访问具有相同名称的外部字段和方法。

public class Outer {
  private String test = "outer;
  private class Inner {
    private String test = "inner";
    public void foo() {
       System.out.println(this.test);       // "inner"
       System.out.println(Outer.this.test); // "outer"
    }
  }
}