go to previous page   go to home page   go to next page

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

Answer:

No — the scope starts where the variable was declared and continues to the end of its block. Sometimes a local variable is declared in the middle of a block, close to the statement which first uses it.

Often, local variables are declared at the beginning of a block so that their scope is the entire block. But this is not a requirement of syntax.


Can't use the Same Name in the Same Scope

class CheckingAccount
{
  . . . .
  private int    balance;

  public void processCheck( int  amount )
  {                          
    int amount;    

    incrementUse();
    if ( balance < 100000 )
      amount = 15;                    // which amount ??? 
    else
      amount = 0;                     // which amount ??? 

    balance =  balance -  amount ;    // which amount ??? 
  } 
}

Don't use the same identifier twice in the same scope. The example shows this mistake.

The scope of the formal parameter amount overlaps the scope of the local variable (also named amount), so this is a mistake. (In terms of "one-way glass", both identifiers are inside the box.)

This is a different situation than a previous example where two methods used the same name for their formal parameters. In that situation the scopes did not overlap and there was no confusion. (In terms of "one-way glass", each identifier was inside its own box.)


QUESTION 10:

Can the same identifier be used as a name for a local variable in two different methods?


go to previous page   go to home page   go to next page