Answer:

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.

Local Variables

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.

The scope of a local variable starts where it is declared and ends at the end of the block that it is in. (Recall that a block is a group of statements inside of braces, {}.)

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 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.

QUESTION 9:

Is the scope of a local variable always the entire body of a method?