Can we call static members of class directly ?


   - Yes if it is same Class member.

If Class has static/class member(Static member also known as class members) we can access in following ways:

  1. Directly
         If your trying to access static member with in same class you can call it off with out any reference.

  2. With Class name
       If static member is not present in same class  We must access with with Class name
  3. With Object or Object reference
           Object:
                If A is a Class then new A() will be the Object.

         Object reference:

    
    
              A a = new A();

    Here "a" is a object reference.


Eg:
     class A{
             
           static int a = 10;

           static void callMe(){
              System.out.println("I'm from static member");
            }

           public static void main(String args[]){

             System.out.println(a); // Valid --->; 1
            
             System.out.println(A.a); // Valid  --->; 2 
                 System.out.println(new A().a); // Valid --->; 3
             System.out.println(A.callMe());// Valid     
             System.out.println(new A().callMe());// Valid  
         
           }
         }


How many ways we can access instance members of Class?

    There are two ways to access.

   One is, object and other one is object reference.

  


      class A{
             
           int a = 10;

           void callMe(){
              System.out.println("I'm from instance member");
            }

           public static void main(String args[]){

             System.out.println(a); // not-valid          
                 System.out.println(new A().a); // Valid 

             System.out.println(A.callMe());// not-valid     
             System.out.println(new A().callMe());// Valid 
              
              A ob = new A();
             
              System.out.println(ob.a);  

              System.out.println(ob.callMe());          
           }
         }



There is big difference between object and object reference[Check it out].

No comments:

Post a Comment