Non-static method: 

Any method declared inside global area not prefix with static keyword is known as nonstatic method.

Note
Non static method is also known as nonstatic context.
Address of nonstatic methods will be stored inside object.
Every nonstatic context will be pointing towards object. 

    this:  
  1. this is a keyword.
  2. this is a nonstatic reference variable.
  3. this will have address of current object.  
        Note:  
    1. this variable can be used only inside nonstatic context.
    2. It cannot be used inside static context.        
Program: 

  1. class Mumbai
  2. {
  3. public void Sheela( )
  4. {
  5. System.out.println("Hi");
  6. System.out.println(this);
  7. System.out.println("Bye");
  8. public static void main(String [ ] args)
  9. {
  10. System.out.println(("MB");
  11. Mumbai ref = new Mumbai( );
  12. System.out.println(ref);
  13. ref.Sheela( );
  14. System.out.println(("ME");
  15. }
  16.  }
Output:
MB                                                                 
Sheela@1                                                     
Hi                                                                   
Sheela@1                                                      
Bye                                                                 
ME                                                                 
                                                                       


Note
    1)How many ways we can used static member inside nonstatic context 
>>>>>[ 3 times]                                
1.directly                          
2. Using classname         
3. with the help of this  

Program: 
  1. class Mumbai
  2. {
  3. static int a=10;
  4. {
  5. public void Sheela( )
  6. {
  7. int a=15;
  8. System.out.println(a);                   //directly
  9. System.out.println(Sheela.a);          //using classname
  10. System.out.println(this.a);           //help of 'this'
  11. public static void main(String [ ] args)
  12. {
  13. Mumbai ref = new Mumbai( );
  14. ref.Sheela( );
  15. }
  16.  }
Output:
15                                                                 
10                                                                 
10                                                                 
                                                                     


2)How many ways we can used static member inside nonstatic context 
    >>>>>[ 3 times]
    1.directly         2. with the help of this      


Program: 
  1. class Mumbai
  2. {
  3. static int a=10;
  4. {
  5. public void Sheela( )
  6. {
  7. int a=15;
  8. System.out.println(a);                   //directly
  9. System.out.println(this.a);           //help of this
  10. public static void main(String [ ] args)
  11. {
  12. Mumbai ref = new Mumbai( );
  13. ref.Sheela( );
  14. }
  15.  }
Output:
15                                                                 
10                                                                 
                                                                     
 


Why do we want this                                              
>>whenever we have static variable and local variable with same 
     name inside nonstatic context we used this         
     1. If we used directly then high priority given to local variable.  
     2.To use nonstatic variable we need this as a reference.