| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| library object_fields_test; | |
| /// Simple program creating an object and accessing its initialized fields. | |
| void main() { | |
| var a = new A(); | |
| print(a.f1); | |
| print(a.f2); | |
| new B(0); | |
| new B.redirecting1(0); | |
| new B.redirecting2(0); | |
| var c = new C.redirecting1(0); | |
| print(c.f1); | |
| print(c.f2); | |
| } | |
| class A { | |
| int f1 = 37; | |
| String f2 = 'hello world'; | |
| } | |
| class B { | |
| B(int i); | |
| B.redirecting1(int i) : this(redirecting(i, 'B.redirecting1')); | |
| B.redirecting2(int i) : this.redirecting1(redirecting(i, 'B.redirecting2')); | |
| } | |
| class C { | |
| int f1 = fieldInitializer(0, 'C.f1'); | |
| int f2 = fieldInitializer(1, 'C.f2'); | |
| C(int i); | |
| C.redirecting1(int i) : this(redirecting(i, 'C.redirecting1')); | |
| } | |
| int redirecting(int i, String s) { | |
| print('$s: $i'); | |
| return i + 1; | |
| } | |
| int fieldInitializer(int f, String s) { | |
| print('$s: $f'); | |
| return f; | |
| } |