As
we know instance methods are associated with an object, where as
class methods are associated with class.
Syntax
static
dataType methodName(parameters){
}
Example
static
int getNoOfEmployees(){
}
Class
methods also called as static methods. Static methods called with
class name.
Syntax
to call class Methods
ClassName.methodName();
Example
class Person{
static private int count =0;
Person(){
count++;
}
static int getNoOfPersons(){
return count;
}
}
class PersonTest{
public static void main(String args[]){
Person personA = new Person();
Person personB = new Person();
System.out.println("Number Of persons created are " + Person.getNoOfPersons());
}
}
Output
Number Of persons created are 2
Some
Points To Remember
1.
You can't call instance method from static method.
Example
class Person{
static int getNoOfPersons(){
setName("HI");
return 1;
}
void setName(String s){
}
}
When
you try to compile the above program, compiler throws below
error
Person.java:4: error: non-static method setName(String) cannot be referenced from a static context setName("HI"); ^ 1 error
2.
Static methods can't access instance variables
Example
class Person{
String name;
static int getNoOfPersons(){
name="Hi";
return 1;
}
}
When
you try to compile the above program, compiler throws below
error
Person.java:5: error: non-static variable name cannot be referenced from a static context
name="Hi";
^
1 error
3.
Applying static for top level class is wrong in java
Example
static class Person{ }
When
you try to compile, compiler throws the below error
Person.java:1: error: modifier static not allowed here static class Person{ ^ 1 error
4.
Static fields are initialized at the time of class loading, where as
instance variables are initialized at the time of object creation
5.
Just like instance methods, we can overload static methods also
No comments:
Post a Comment