enum EnumPrivateMethodTest { FIRST { @Override public void execute() { this.firstMethod(); String s = this.myDescription; } }; public abstract void execute(); private void firstMethod() {} private final String myDescription = "description"; } abstract class EnumPrivateMethodTest1 { EnumPrivateMethodTest1 FIRST = new EnumPrivateMethodTest1() { @Override public void execute() { this.firstMethod(); } }; public abstract void execute(); private void firstMethod() {} } abstract class EnumPrivateMethodTest2 { EnumPrivateMethodTest2 FIRST = new EnumPrivateMethodTest2() { @Override public void execute() { firstMethod(); } }; public abstract void execute(); private void firstMethod() {} } class TestAnonymousContainer { private class Foo { private Foo() {} { new Foo(){}; } } class AB { private void foo(){} } { new AB() {}.foo(); } }