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.