Is this OK? Sure. The caller has sent the value 7000 to the method.
What does amount = 0 do in the method?    
This changes the local copy of the value from 7000 to 0.
But this does not affect the caller. Look back at the caller---the value 7000 is not contained in a variable. There is nothing that the called method could change.
A local variable is a variable that is declared inside of
the body of a method.  
It can be seen only by the statements that follow its declaration
inside of that method.
(Its scope starts where it is declared and ends at the
end of the method.)
For example, charge  of  processCheck
is a local variable:
class CheckingAccount
{
  . . . .
  private int    balance;
  void processCheck( int  amount  )
  {                          
    int charge;   // scope of charge starts here
    incrementUse();
    if ( balance < 100000 )
      charge = 15; 
    else
      charge = 0;
    balance =  balance -  amount  - charge  ;
  }              // scope of charge ends here
}
The local variable charge is used in a typical fashion.
It is used to hold a temporary value while something is being
calculated.
Local variables are not used to hold the permanent values of
an object's state.
They have a value only during the brief amount of time that a
method is active.