Dart static Keyword
static is a keyword in Dart language and refers to the current class.
static
keywords apply to method or class instance variables.
Class is a blueprint for an object.
Instance variables have different copies of data for each object.
Suppose, you want to maintain a single copy of data for all instances, Then the data variable must be declared as static in a class. This is the same case with methods.
usually, instance variables and methods are called with the object name
object.instancevariable
object.method()
Static variables and methods are called with class names directly.
class.instancevariable
class.method()
Syntax:
this.instancevariable
this.method()
Dart static variable
variables are declared with the static
keyword in the class for instance variables.
static variables are also called class variables.
Syntax:
Here is a syntax for declaring a static variable in a class
static datatype variablename;
Static variables are accessed with the class name
classname.variablename
Here is an example for creating and accessing static variables in Dart with the example
These examples are two instance variables and one static variable.
Static variables are accessed using the class name instance variables are accessed using the object of a class
class Employee {
static String group = "sales";
int id = 0;
String name = '';
Employee(int id, String name) {
this.id = id;
this.name = name;
}
printEmployee() {
print("Name is: ${name}");
print("Id is : ${id}");
print("Group: ${group}");
}
}
void main() {
Employee e1 = new Employee(1, "john");
Employee e2 = new Employee(2, "Andrew");
e1.printEmployee();
e2.printEmployee();
print(Employee.group);
//print(Employee.id);// compilation error
// print(e1.group); // compilation error
print(e1.id);
print(e1.group);
}
Output:
Name is: john
Id is: 1
Group: sales
My name is: Andrew
Id is : 2
Group: sales
Dart static methods
static keywords also apply to methods in a dart class.
These methods also called class methods, use a class
class Employee {
static String group = "sales";
int id = 0;
String name = '';
Employee(int id, String name) {
this.id = id;
this.name = name;
}
printEmployee() {
print("Name is: ${name}");
print("Id is : ${id}");
}
static printEmployeeGroup() {
print("Group: ${group}");
}
}
void main() {
Employee e1 = new Employee(1, "john");
Employee e2 = new Employee(2, "Andrew");
e1.printEmployee();
e2.printEmployee();
Employee.printEmployeeGroup();
// e1.printEmployeeGroup(); // compilation error
// Employee.printEmployee(); // compilation error
}
Important points.
- static keyword points to the current class
- It applies to variables and methods in a class
- static methods and variables are called directly using a class name, not an object instance.
- Static variables have the same copy of data for all instances of a class
- static methods do not allow to use of instance variables