What is the difference between static and final?
The main difference between static and final is that static is used to define the member of the class that can be used independently of any objects in the class. Unlike , final is used to declare a constant variable or a method that cannot be overridden or a class that cannot be inherited.
Static and final are two keywords that are used in many Object Orientation supporting programming languages like Java. Static is used with variables and methods to define that it belongs to the class, not the object. On the other hand, final is used to restrict the user from accessing a variable, method, or class.
Key Areas Covered
1. What is static
– Definition, Functionality
2. What is final
– Definition, Functionality
3. What is the difference between static and final?
– Comparison of key differences
Class, Final Variable, Static Variable
what is static
A class consists of variables and methods. An object is created from a class; This object can be used to call variables and methods. When a class member is declared statically, it is not necessary to create an object to call methods and variables. Instead, the class name can be used to call it. In other words, static is a keyword that belongs to the class rather than the object.
A variable with the static keyword is called a static variable. They are used to refer to a common property of a collection of objects. These variables get memory when loading the class. The main advantage of a static variable is that it helps save memory.
Figure 1: Static Variable
In the above program, there is a static variable called count. In the constructor, the count is incremented by 1. In the main program, three student objects are created. Printing the count will give the result 3 since there are three objects. The count variable is shared by all objects. Each time an object is created, the count is incremented by one. When the count is displayed, it must be written with the name of the class (for example, Student.count).
A method with the static keyword is known as a static method. An example is the following.
Figure 2: Static Method
In the above program, square is a static method. Receive an integer value. In the main method, the static method is called and the value 4 is passed. The response of the method is stored in the result variable and finally printed. Here, the class name is used to access the static method. (for example, Calculate.square(4)). On the other hand, static methods cannot use non-static data members or call non-static methods directly. Evaluating a non-static variable using a static method will give a compile-time error.
what is final What is the difference between static and final?
Final is a keyword to restrict the user. It can be used in variables, methods and classes. A value of a final variable cannot be changed.
In the above program, the variable speedLimit is declared as final. Therefore, its value cannot be changed in the unit method. Therefore, it shows an error.
Difference Between Static and Final
Static is a keyword that denotes a member variable or method that can be accessed without requiring an instantiation of the class to which it belongs. In contrast, final is a keyword that denotes an entity that can only be assigned once. Thus, this explains the fundamental difference between static and final.
While static variables can be initialized again, final variables cannot be initialized again. This is a big difference between static and final.
Static methods can be called by other static methods and only access static members of the class. On the other hand, final methods cannot be overridden. This is another important difference between static and final.
Class What is the difference between static and final?
An object cannot be created from a static class; it only consists of static members. Similarly, final classes cannot be inherited by other classes.
Static is used to define the member of the class that can be used independently of any objects in the class. Final is used to declare a constant variable or a method that cannot be overridden or a class that cannot be inherited. This is the main difference between static and final.
1. “Static Keyword in Java – Javatpoint.” www.javatpoint.com, available here.
2. “End Keyword in Java – Javatpoint.” www.javatpoint.com, available here.