If you try to access an instance variable or say non-static variable in a static method, you would end up with static reference error message.
For instance, in the following example, variable "a" is class variable/non-static instance variable and if accessed directly in the static method, say in this case it is main method, it would throw the reference exception.
For instance, in the following example, variable "a" is class variable/non-static instance variable and if accessed directly in the static method, say in this case it is main method, it would throw the reference exception.
NonStaticDataMemberInStaticMethod.java
package static1.method; public class NonStaticDataMemberInStaticMethod { int a=10 ;// non static variable public static void main(String args[]) { System.out.println(a); } }
Error Message:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Cannot make a static reference to the non-static field a at static1.method.NonStaticDataMemberInStaticMethod.main(NonStaticDataMemberInStaticMethod.java:7)
Solution:
1) Create an Object
2) Call/print the non static variable using object.
package static1.Variable; public class NonStaticDataMemberInStaticMethod { int a =10;//non static variable public static void main(String args[]) { NonStaticDataMemberInStaticMethod myObj=new NonStaticDataMemberInStaticMethod(); System.out.println(myObj.a); } }
- Sadakar Pochampalli
No comments:
Post a Comment