Constructors
Default constructor
class User {
User() {}
}
// call it by
var user = User()Parameterised constructor
class User {
User(int this.id, String this.name);
int id = 0;
String name = '';
}
// called by
var user = User(21, 'ben');Named Constructor
class User {
User.customConstructor(this.id, this.name);
// multiple named constuctors are allowed
}
// called by
var user = User.customConstructor(21, 'ben');Constant Constructor
// unknown
From the book
Constructor
class User {
User(int id, String name) {
this.id = id;
this.name = name;
}
int id = 0;
String name = '';
// ...
}
// or
class User {
User(this.id, this.name);
int id = 0;
String name = '';
// ...
}
// or
class User {
User({int id = 0, String name = 'anonymous'})
: _id = id,
_name = name {
print('User name is $_name');
}
}Unnamed constructors
used for special cases where you need it to do something different
// unnamed constructor
ClassName()
// named constructor
ClassName.identifierName()class User {
User(this.id, this.name);
// named constructor
User.anonymous() {
id = 0;
name = 'anonymous';
}
int id = 0;
String name = '';
// ...
}Short-hand
class User {
User(this.id, this.name);
// named constructor
User.anonymous() : this(0, 'anonymous');
int id = 0;
String name = '';
// ...
}Factory Constructors
factory User.ray() {
return User(id: 42, name: 'Ray');
}