Your browser does not support JavaScript and this site utilizes JavaScript to build content and provide links to additional information. You should either enable JavaScript in your browser settings or use a browser that supports JavaScript in order to take full advantage of this site.
1 2 13 public class PrivateHideTest { 14 15 public static class Test { 16 private String id; 17 18 Test(int val) { 19 id = "Test"+val; 20 } 21 22 private void a(String descr) { 23 System.err.println(descr+" = "+id); 24 } 25 26 class Mid extends Test { 27 private String id; 28 29 Mid(int val) { 30 super(val); 31 id = "Mid"+val; 32 } 33 34 private void a(String descr) { 35 System.err.println(descr+" = "+id); 36 } 37 38 private Test getTestThis() { 39 return Test.this; 40 } 41 42 class Inner extends Mid { 43 private String id; 44 45 Inner(int val, Test midOuter) { 46 midOuter.super(val); 47 id = "Inner"+val; 48 } 49 50 private void a(String descr) { 51 System.err.println(descr+" = "+id); 52 } 53 54 private void methodTest() { 55 this.a("this"); 56 super.a("super"); 57 ((Mid) this).a("(Mid) this"); 58 ((Test) this).a("(Test) this"); 59 Mid.this.a("Mid.this"); 60 ((Test) Mid.this).a("(Test) Mid.this"); 61 Test.this.a("Test.this"); 62 ((Mid) this).getTestThis().a("((Mid) this).getTestThis()"); 63 Mid.this.getTestThis().a("Mid.this.getTestThis()"); 64 } 65 66 67 private void fieldTest() { 68 System.err.println("this = "+this.id); 69 System.err.println("(Mid) this = " + ((Mid) this).id); 70 System.err.println("(Test) this = " + ((Test) this).id); 71 System.err.println("Mid.this = " + Mid.this.id); 72 System.err.println("(Test) Mid.this = " + ((Test) Mid.this).id); 73 System.err.println("Test.this = " + Test.this.id); 74 System.err.println("((Mid) this).getTestThis() = " + ((Mid)this).getTestThis().id); 75 System.err.println("Mid.this.getTestThis() = " + Mid.this.getTestThis().id); 76 } 77 } 78 } 79 } 80 81 public static void main(String [] argv) { 82 Test.Mid.Inner inner = 83 new Test(1).new Mid(2).new Inner(3, new Test(4).new Mid(5)); 84 inner.methodTest(); 85 System.err.println("--"); 86 inner.fieldTest(); 87 ((Test.Mid)inner).a("(Test.Mid) inner"); 88 } 89 } 90
| Popular Tags
|