The next program
uses the constructor to initialize a car rather than setting the fields
directly.
class CarTest7 {
public static void main(String args[]) {
Car c = new Car("New York A45 636", 123.45);
System.out.println(c.getLicensePlate() + " is moving at " + c.getSpeed() +
" kilometers per hour.");
for (int i = 0; i < 15; i++) {
c.accelerate(10.0);
System.out.println(c.getLicensePlate() + " is moving at " + c.getSpeed()
+ " kilometers per hour.");
}
}
}
You no longer need to know about the fields licensePlate ,
speed and maxSpeed . All you need to know is how
to construct a new car and how to print it.
You may ask whether the setLicensePlate()
method is still needed since it's now set in a constructor. The general
answer to this question depends on the use to which the Car
class is to be put. The specific question is whether a car's license plate
may need to be changed after the Car object is created.
Some classes may not change after they're created; or,
if they do change, they'll represent a different object. The most common
such class is String . You cannot change a string's data. You
can only create a new String object. Such objects are called immutable.
|