import 'dart:math';
class Position {
  int x;
  int y;
  // A simple constructor
  Position(this.x, this.y);
  // Additional constructors can be defined using named constructors
  Position.atOrigin() {
    x = 0;
    y = 0;
  }
  // Factory constructors
  factory Position.fromMap(Map m) {
    return new Position(m['x'], m['y']);
  }
  String toString() => "[$x, $y]";
}
main() {
  print(new Position(30, 40));
  print(new Position.atOrigin());
  print(new Position.fromMap({'x': 4, 'y': 100}));
}
$ dart constructors.dart
[30, 40]
[0, 0]
[4, 100]