Warum sind private Felder, die auf einem enum-Typ sichtbar auf die enthaltende Klasse?

public class Parent {

    public enum ChildType {

        FIRST_CHILD("I am the first."),
        SECOND_CHILD("I am the second.");

        private String myChildStatement;

        ChildType(String myChildStatement) {
            this.myChildStatement = myChildStatement;
        }

        public String getMyChildStatement() {
            return this.myChildStatement;
        }
    }

    public static void main(String[] args) {

        //Why does this work?
        System.out.println(Parent.ChildType.FIRST_CHILD.myChildStatement);
    }
}

Gibt es zusätzliche Regeln in Bezug auf die Zugriffskontrolle für Eltern Unterklassen, Klassen innerhalb des gleichen package, etc., in Bezug auf dieses enum? Wo könnte ich finden diese Regeln in die spec?

InformationsquelleAutor | 2011-02-21
Schreibe einen Kommentar