public class Class1{ public static void main (String args[]) { // Class3 c = new Class2.Class3(); } } What is the correct way of defining a top level nested class For a non inner Class3, it can do like Class2.Class3 c = new Class2().new Class3(); but what should be the syntax for top level nested class