Dart Class

Dart is an Object Oriented Programming language and Dart supports Classes.

In this tutorial, we will learn about Dart Classes, constructors and named constructors in a class.

Syntax of a Class

A class can contain variables (properties), constructors and methods (behavior). class keyword is used to define a class in Dart.

Following is the syntax of a Dart Class.

</>
Copy
 class ClassName {
   //variables
   //constructor
   //named constructors
   //methods
 }

where ClassName is the name by which this class is referenced.

Example – Dart Class with variables

Let us define a simple Dart Class with just variables.

</>
Copy
class Car{
  String name;
  int miles;
}

This class has two variables: one is of type String and the other is of type integer.

Example – Dart Class with variables and methods

Let us define a simple Dart Class with variables and methods.

</>
Copy
class Car{
  String name;
  int miles;
  
  void printDetails() {
    print(name+' has gone '+miles.toString()+' miles.');
  }
}

This class has two variables and one method. The method is printDetails().

Create an object of this Class type

We can create as many number of objects of a Class type as required. And you can access variables and call methods using the dot operator.

Let us the Car class we defined in the previous example and create an object, access the variables and call methods.

example.dart

</>
Copy
class Car{
  String name;
  int miles;
  
  void printDetails() {
    print(name+' has gone '+miles.toString()+' miles.');
  }
}

void main(){
  //create obejct
  Car car = Car();
  
  //set variables
  car.name = 'Ford Mustang';
  car.miles = 22000;
  
  //call method
  car.printDetails();
}

Output

Ford Mustang has gone 22000 miles.

Constructor

A constructor shares the syntax of a method, with same name as that of class and without any return type.

When you create an object of a class type, you can provide the values for parameters given in a constructor.

</>
Copy
class Car{
  String name;
  int miles;
  
  Car(name, miles) {
    this.name = name;
    this.miles = miles;
  }
}

The number of parameters you provide for a constructor are your choice.

Let us see an example of class using constructor.

Dart Program – example.dart

</>
Copy
class Car{
  //variables
  String name;
  int miles;
  
  //constructor
  Car(name, miles) {
    this.name = name;
    this.miles = miles;
  }
  
  //method
  void printDetails() {
    print(name+' has gone '+miles.toString()+' miles.');
  }
}


void main(){
  //create obejct
  Car car = Car('Ford Mustang', 22320);
  
  //call method
  car.printDetails();
}

Output

Ford Mustang has gone 22320 miles.

Named Constructors

You can define special type of constructors called named constructors in a class. The name of this named constructor is followed after the class name with a dot in the definition.

An example is shown below, where in we defined a named constructor, along with a standard constructor for class Car.

Dart Program – example.dart

</>
Copy
class Car{
  //variables
  String name;
  int miles;
  
  //constructor
  Car(name, miles) {
    this.name = name;
    this.miles = miles;
  }
  
  //named constructor
  Car.fromName(name){
    this.name = name;
	this.miles = 10000;
  }
  
  //method
  void printDetails() {
    print(name+' has gone '+miles.toString()+' miles.');
  }
}


void main(){
  //create obejct
  Car car = Car.fromName('Ford Mustang');
  
  //call method
  car.printDetails();
}

Output

Ford Mustang has gone 10000 miles.

Conclusion

In this Dart Tutorial, we have learned how to define a class in Dart, structure of a Dart Class, how to create objects of a class type, constructors and named constructors for a class.