How to Create an Object in Dart

In Dart, an object is an instance of a class. Creating an object involves instantiating a class, which means allocating memory for the object and initializing its properties. This process allows you to use the methods and properties defined in the class. Below, we will explore how to create objects in Dart with detailed explanations and sample code.

1. Defining a Class

Before creating an object, you need to define a class. A class serves as a blueprint for the objects you will create. Here’s a simple example of a class definition:

class Person {
String name;
int age;

// Constructor
Person(this.name, this.age);

// Method to display information
void displayInfo() {
print('Name: $name, Age: $age');
}
}

In this example, we define a class named Person with two properties: name and age. The constructor initializes these properties, and the displayInfo method prints the person's information.

2. Creating an Object

To create an object in Dart, you use the class name followed by parentheses. You can pass arguments to the constructor if it requires parameters.

Example of Creating an Object

void main() {
// Creating an object of the Person class
Person person1 = Person('Alice', 30);

// Calling the method on the object
person1.displayInfo(); // Output: Name: Alice, Age: 30
}

In this example, we create an instance of the Person class named person1 and pass the name "Alice" and age 30 to the constructor. We then call the displayInfo method to print the person's details.

3. Creating Multiple Objects

You can create multiple objects from the same class, each with its own state.

Example of Multiple Objects

void main() {
// Creating multiple objects of the Person class
Person person1 = Person('Alice', 30);
Person person2 = Person('Bob', 25);

// Calling the method on each object
person1.displayInfo(); // Output: Name: Alice, Age: 30
person2.displayInfo(); // Output: Name: Bob, Age: 25
}

In this example, we create two instances of the Person class: person1 and person2. Each object has its own properties and can call the displayInfo method independently.

4. Using Named Constructors

Dart allows you to define named constructors for more specific initialization. Named constructors can be useful when you want to create objects in different ways.

Example of Named Constructor

class Person {
String name;
int age;

// Default constructor
Person(this.name, this.age);

// Named constructor
Person.withName(String name) : this.name = name {
this.age = 0; // Default age
}

void displayInfo() {
print('Name: $name, Age: $age');
}
}

void main() {
// Using the default constructor
Person person1 = Person('Alice', 30);
person1.displayInfo(); // Output: Name: Alice, Age: 30

// Using the named constructor
Person person2 = Person.withName('Bob');
person2.displayInfo(); // Output: Name: Bob, Age: 0
}

In this example, we define a named constructor withName that initializes the name property while setting a default value for age. We create two objects using both the default and named constructors.

5. Conclusion

Creating objects in Dart is a straightforward process that involves defining a class and then instantiating it. By using constructors, you can initialize the properties of the objects and define their behavior through methods. Understanding how to create and work with objects is essential for building object-oriented applications in Dart.