public class FieldAccessAndMethodCalls { public static void main(String[] args) { Class1 c1 = new Class1(); int i = c1.c2.c3.m3(1).m2().m1(); print(i); } } public class Class1{ int i1; Class2 c2; public Class1{ this.c2 = new Class2(); } public int m1(){ return i1; } } public class Class2{ int i2; Class3 c3; public Class3{ this.c3 = new Class3(); } public Class1 m2(){ Class1 c1 = new Class2(); c1.i1 = i2; return c1; } } public class Class3{ int i3; public Class3(int i){ this.i1 = i; } public Class2 m3(int i){ Class2 c2 = new Class2(); c2.i2 = i; return c2; } }