Skip to main content
ICT
Lesson A4 - Object Behavior
 
Main   Previous Next
 

E. Lifetime, Initialization, and Scope of Variables page 7 of 11

  1. Three categories of Java variables have been explained thus far in these lessons.

    • Instance variables
    • Local variables
    • Parameters

  2. The lifetime of a variable defines the portion of runtime during which the variable exists. When an object is constructed, all its instance variables are created. As long as any part of the program can access the object, it stays alive. A local variable is created when the program executes the statement that defines it. It stays alive until the block that encloses the variable definition is exited. When a method is called, its parameters are created. They stay alive until the method returns to the caller.

  3. The type of the variable determines its initial state. Instance variables are automatically initialized with a default value (0 for numbers, false for boolean, null for objects). Parameters are initialized with copies of the arguments. Local variables are not initialized by default so an initial value must be supplied. The compiler will generate an error if an attempt is made to use a local variable that may not have been initialized.

  4. Scope refers to the area of a program in which an identifier is valid and has meaning. Instance variables are usually declared private and have class scope. Class scope begins at the opening left brace ({) of the class definition and terminates at the closing brace (}). Class scope enables methods to directly access all of its instance variables. The scope of a local variable extends from the point of its definition to the end of the enclosing block. The scope of a parameter is the entire body of its method.

  5. An example of the scope of a variable is given in Code Sample 4-2. The class ScopeTest is created with three methods:


    Code Sample 4-2

  6. The results show the following about the scope of the variable test:

    • Within the scope of main, the value of test is 10, the value assigned within the main method.
    • Within the scope of printLocalTest, the value of test is 20, the value assigned within the printLocalTest method
    • Within the scope of printClassTest, the value of test is 30, the private value assigned within ScopeTest, because there is no value given to test within the printClassTest method
    • Within the scope of printParamTest, the value of test is 40, the value sent to the printParamTest method

 

Main   Previous Next
Contact
 © ICT 2006, All Rights Reserved.