🐣 Constructors
How to use Dart class constructors
Constructor Basics
The this
keyword is used to refer to the current instance of a class and is optional unless there is a name collision.
constructors.dart
class Rectangle {
final int width;
final int height;
String? name;
late final int area;
Rectangle(this.width, this.height, [this.name]) {
area = width * height;
}
}
Named Parameters
In Flutter, all widgets used named parameters.
constructors.dart
class Circle {
const Circle({required int radius, String? name});
}
const cir = Circle(radius: 50, name: 'foo');
Named Constructors
It is also possible for a class to have multiple named constructors. This is useful when different datatypes can be used to initialize the same class.
constructors.dart
class Point {
double lat = 0;
double lng = 0;
// Named constructor
Point.fromMap(Map data) {
lat = data['lat'];
lng = data['lng'];
}
Point.fromList(List data) {
lat = data[0];
lng = data[1];
}
}
var p1 = Point.fromMap({'lat': 23, 'lng': 50});
var p2 = Point.fromList([23, 50]);