Instance and class methods in Dart (original) (raw)
Last Updated : 02 Apr, 2025
Dart provides us with the ability to create methods of our own. The methods are created to perform certain actions in class. Methods help us to remove the complexity of the program. It must be noted that methods may or may not return any value, and also, they may or may not take any parameter as input. Methods in a class can be either object methods or class methods. There are two types of methods in Dart:
- **Instance Method
- **Class Method
Instance Method in Dart
Unless the method is declared as static, it is classified as an **instance method in a class. They are allowed to access instance variables. To call the method of this class, you have to first create an object.
**Syntax:
// Declaring instance method
return_type method_name() {
// Body of method
}
// Creating object
class_name object_name = new class_name();
// Calling instance method
object_name.method_name();
**Creating instance method in Dart :
Dart `
// Creating Class named Gfg class Gfg { // Declaring instance variable int a = 0; int b = 0;
// Creating instance method name
// sum with two parameters
void sum(int c, int d) {
// Using this to set the values of the
// input to instance variable
this.a = c;
this.b = d;
// Printing the result
print('Sum of numbers is ${a + b}');
}
}
void main() { // Creating instance of the class Gfg(Creating Object) Gfg geek = new Gfg();
// Calling the method sum with the use of object
geek.sum(21, 12);
}
`
**Output:
Sum of numbers is 33
Class Method in Dart
All the methods declared with static keyword are termed as **class methods. They can't access non-static variables and can't invoke non-static methods of the class. It must be noted that unlike the **the instance method class method can directly be called by using class name.
**Syntax:
// Creating class method
static return_type method_name() {
// Body of method
}
// Calling class method
class_name.method_name();
**Creating a class method in Dart :
Dart `
// Creating Class named Gfg class Gfg { // Creating a class method name // sum with two parameters static void sum(int c, int d) { // Printing the result print('Sum of numbers is ${c + d}'); } }
void main() { // Calling the method sum without the // use of object i.e with class name Gfg.sum(11, 32); }
`
**Output:
Sum of numbers is 43
Conclusion
Dart enables the definition of methods that perform specific actions within a class, enhancing code organization and reusability. Methods can be categorized as instance methods, which require the creation of an object, or class methods, which are declared with the keyword **static and can be accessed directly via the class name. Understanding the distinction between these types of methods is crucial for writing efficient and maintainable code.