Dart also provides the support of constructors. Constructors are a special method that is used to initialize an object when created in the program. In object-oriented programming when an object is created, it automatically calls the constructor. All classes have their default constructor which is created by the compiler when class is called, moreover one can also define constructor of its own. But, you must note that if you do so than the default constructor will not be created and will be ignored.
Constructors in Dart: The constructors have the same name as the class name and don’t have any return type.
class_name( [ parameters ] ){
// Constructor Body
}
In the above syntax:
- class_name is the name of the class whose constructor is being created.
- parameters are optional features and they can and can’t be defined for the constructor. The default constructor has no parameter defined in it.
- Constructor body is the body of the constructor and is executed when the constructor is called i.e when an object is created.
- Constructors don’t have any return type.
Example 1: Creating a constructor in Dart
Dart
class Gfg{
Gfg() {
print( 'Constructor is being created' );
}
String geek1;
void geek(){
print( "Welcome to $geek1" );
}
}
void main() {
Gfg geek = new Gfg();
geek.geek1 = 'GeeksforGeeks' ;
geek.geek();
}
|
Output:
Constructor is being created
Welcome to GeeksforGeeks
There are three types of constructors in Dart:
1. Default Constructor: The default constructors are those constructors that don’t have any parameters in it. Thus, if a constructor which don’t have any parameter then it will be a type of default constructor.
Example: Creating default constructor in Dart
Dart
class Gfg{
Gfg() {
print( 'This is the default constructor' );
}
}
void main() {
Gfg geek = new Gfg();
}
|
Output:
This is the default constructor
2. Parameterized Constructor: In Dart, you can also create a constructor having some parameters. These parameters will decide which constructor will be called and which will be not. Those constructors which accept parameters is known as parameterized constructor.
Example:
Dart
class Gfg{
Gfg( int a) {
print( 'This is the parameterized constructor' );
}
}
void main() {
Gfg geek = new Gfg(1);
}
|
Output:
This is the parameterized constructor
Note: You can’t have two constructors with the same name although they have different parameters. The compiler will display an error.
3. Named Constructor: As you can’t define multiple constructors with the same name, this type of constructor is the solution to the problem. They allow the user to make multiple constructors with a different name.
class_name.constructor_name ( parameters ){
// Body of Constructor
}
Example:
Dart
class Gfg{
Gfg.constructor1( int a) {
print( 'This is the parameterized constructor with only one parameter' );
}
Gfg.constructor2( int a, int b) {
print( 'This is the parameterized constructor with two parameters' );
print( 'Value of a + b is ${a + b}' );
}
}
void main() {
Gfg geek1 = new Gfg.constructor1(1);
Gfg geek2 = new Gfg.constructor2(2, 3);
}
|
Output:
This is the parameterized constructor with only one parameter
This is the parameterized constructor with two parameters
Value of a + b is 5