class Outer { private class Inner1 { public Inner1(){} public Inner1(int a) { this(); } protected Inner1(char c) { this(); } private Inner1(boolean b) { this(); } } protected class Inner2 { public Inner2(){} public Inner2(int a) { this(); } protected Inner2(char c) { this(); } private Inner2(boolean b) { this(); } } class Inner3 { public Inner3(){} public Inner3(int a) { this(); } protected Inner3(char c) { this(); } private Inner3(boolean b) { this(); } } public class Inner4 { public Inner4(){} public Inner4(int a) { this(); } protected Inner4(char c) { this(); } private Inner4(boolean b) { this(); } } void foo() { Inner1 inner1 = new Inner1(1); Inner2 inner2 = new Inner2(2); Inner3 inner3 = new Inner3(3); Inner4 inner4 = new Inner4(4); } }