|
123456789101112131415161718192021222324252627282930313233 |
-
- import org.aspectj.testing.Tester;
-
- public class InitializationOrder {
- public static void main (String[] args) {
- C c = new C();
- Tester.check(null != c.s, "null == c.s");
- Sub s = new Sub();
- Tester.check("ok" == s.o, "\"ok\" == s.o");
- Tester.check(null == s.p, "null == s.p");
- }
-
- }
-
- class C {
- public String s = null;
- C(String s) { this.s = s; }
- C() { this("uh oh"); }
- }
-
- class S {
- public Object p;
- S(Object p) {this.p = p;}
- }
-
- class Sub extends S {
- Sub() {
- super(null); // if (o), then C E illegal use of uninitialized value
- o = "ok";
- }
- Object o;
- }
-
|