Answer:
- Do the instance variables of an object hold values for the lifetime of the object?
- Yes—an object is a "thing" that has state (its unique characteristics.) The state is kept in instance variables.
- Do the parameters of a constructor hold values for the lifetime of the object?
- No—the parameters of a constructor are part of a temporary "message" to the constructor. After the parameters have been used, they are gone.
Possible Errors
Of course, the data in the "message" to the constructor will usually be stored in the instance variables, where it will remain until the object is destroyed (or until the instance variables are deliberately changed).
Here is an interesting program. Is anything wrong?
class Car
{
// instance variables
double startMiles; // Stating odometer reading
double endMiles; // Ending odometer reading
double gallons; // Gallons of gas used between the readings
// constructor
Car( double first, double last, double gals )
{
startMiles = first ;
endMiles = last ;
gallons = gals ;
}
// methods
double calculateMPG()
{
return (last - first)/gals ;
}
}
class MilesPerGallon
{
public static void main( String[] args )
{
Car car = new Car( 32456, 32810, 10.6 );
System.out.println( "Miles per gallon is " + car.calculateMPG() );
}
}
QUESTION 16: