1 19 20 import java.util.Vector ; 21 22 public class AnonymousClass { 23 class Inner { 26 int var = 3; 27 28 public void test() { 29 final long longVar = 5; 30 final double dblVar = 3; 31 32 class Hello { 33 int var = (int) longVar; 34 35 { 36 System.err.println("all constructors"); 37 } 38 39 Hello() { 40 System.err.println("construct"); 41 } 42 Hello(String info) { 43 System.err.println("construct: "+info); 44 } 45 Hello(int i) { 48 this("This can only be compiled correctly" 49 +" by a recent jikes"); 50 } 51 private void hello() { 54 this.hashCode(); 55 Inner.this.hashCode(); 56 AnonymousClass.this.hashCode(); 57 System.err.println("HelloWorld: "+dblVar); 58 } 59 }; 60 final Hello hi = new Hello(); 61 final Hello ho = new Hello("ho"); 62 final Object o = new Object () { 63 int blah = 5; 64 65 { 66 System.err.println("Anonymous Constructor speaking"); 67 } 68 69 Hello hii = hi; 70 71 public String toString() { 72 this.hii.hello(); 73 hi.hello(); 74 return Integer.toHexString(AnonymousClass.this.hashCode() 75 +blah); 76 } 77 78 { 79 System.err.println("Anonymous Constructor continues"); 80 } 81 82 }; 83 Object p = new Object () { 84 public String toString() { 85 return o.toString(); 86 } 87 }; 88 Hello blah = new Hello("Hello World") { 90 public void hello() { 91 System.err.println("overwritten" + dblVar + hi); 92 } 93 }; 94 96 Inner blub = new AnonymousClass().new Inner("Inner param") { 97 public void test() { 98 System.err.println("overwritten"); 99 } 100 }; 101 102 class Hi extends Inner { 103 public Hi() { 104 super("Hi World"); 105 } 106 } 107 108 class Huhu extends Hello { 110 public Huhu(String str) { 111 super(str); 112 } 113 114 public Huhu(int i) { 115 } 116 117 public Huhu() { 118 super("What's up"); 119 } 120 } 121 123 Vector v = new Vector (hi.var, new Inner("blah").var) { 124 public String newMethod() { 125 return super.toString(); 126 } 127 }; 128 129 Hi hu = new Hi(); 130 new Huhu(1); 131 132 } 133 Inner (String str) { 134 } 135 } 136 137 138 public void test() { 139 class Hello { 140 int var = 4; 141 142 Hello() { 143 System.err.println("construct"); 144 } 145 Hello(String info) { 146 System.err.println("construct: "+info); 147 } 148 149 public void hello() { 150 this.hashCode(); 151 AnonymousClass.this.hashCode(); 152 System.err.println("HelloWorld"); 153 } 154 }; 155 final Hello hi = new Hello(); 156 final Hello ho = new Hello("ho"); 157 final Object o = new Object () { 158 int blah = 5; 159 160 Hello hii = hi; 161 162 public String toString() { 163 this.hii.hello(); 164 hi.hello(); 165 return Integer.toHexString(AnonymousClass.this.hashCode() 166 +blah); 167 } 168 }; 169 Object p = new Object () { 170 public String toString() { 171 return o.toString(); 172 } 173 }; 174 Hello blah = new Hello("Hello World") { 176 public void hello() { 177 System.err.println("overwritten"); 178 } 179 }; 180 182 Inner blub = new Inner("Inner param") { 183 public void test() { 184 System.err.println("overwritten"); 185 } 186 }; 187 188 class Hi extends Inner { 189 public Hi() { 190 super("Hi World"); 191 } 192 } 193 194 Vector v = new Vector (hi.var, new Inner("blah").var) { 195 public String newMethod() { 196 return super.toString(); 197 } 198 }; 199 200 Hi hu = new Hi(); 201 202 } 203 } 205 | Popular Tags |