public class NonStaticOuterClass { static int s_int; int ns_int; public NonStaticOuterClass(int s, int ns) { s_int = s; ns_int = ns; } public String toString() { return "static: "+s_int+", non-static: "+ns_int; } public static class StaticInnerClass { void setOuterClass(NonStaticOuterClass outerObj, int o) { outerObj.s_int = o; outerObj.ns_int = 2*o; } void setOuterClassDirectly(int o) { s_int = o; //sn_int = 2*o; } public String toString() { return ""; //"innerPriv: "+innerPriv+", innerPub: "+innerPub; } } }