Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The code in this noncompliant example illegally exposes the (x,y) coordinates through the getPoint() method of the inner class. As a result, the AnotherClass class can illegally access the coordinates. Note that the fields x and y cannot be directly accessed (Coordinates.Point.x, for instance, is inaccessible) through the class Point at compile time. however, at runtime, these fields have package-private access.

Code Block
bgColor#FFcccc
class Coordinates {
  private int x;
  private int y;

  public class Point {
    public void getPoint() {
      System.out.println("(" + x + "," + y + ")");    
    }
  }
}

class AnotherClass {
  public static void main(String[] args) {
    Coordinates c = new Coordinates();
    Coordinates.Point p = c.new Point();
    p.getPoint();
  }        
}

...