Java Reference
In-Depth Information
Self-Test Exercises
(continued)
<
Details not shown.
>
}
public
void
doStuff()
{
<
Details not shown.
>
}
}
Which of the following are legal in a program that uses this class?
YourClass anObject =
new
YourClass(42, 'A');
YourClass anotherObject =
new
YourClass(41.99, 'A');
YourClass yetAnotherObject =
new
YourClass();
yetAnotherObject.doStuff();
YourClass oneMoreObject;
oneMoreObject.doStuff();
oneMoreObject.YourClass(99, 'B');
26. What is a no-argument constructor? Does every class have a no-argument construc-
tor? What is a default constructor?
Default Variable Initializations
Local variables are not automatically initialized in Java, so you must explicitly initialize
a local variable before using it. Instance variables, on the other hand, are automatically
initialized. Instance variables of type
boolean
are automatically initialized to
false
.
Instance variables of other primitive types are automatically initialized to the zero of
their type. Instance variables of a class type are automatically initialized to
null
, which
is a kind of placeholder for an object that will be filled in later. We will discuss
null
in
Chapter 5. Although instance variables are automatically initialized, we prefer to
always explicitly initialize them in a constructor, even if the initializing value is the
same as the default initialization. That makes the code clearer.
An Alternative Way to Initialize Instance Variables
Instance variables are normally initialized in constructors, and that is where we prefer
to initialize them. However, there is an alternative. You can initialize instance variables
when you declare them in a class definition, as illustrated by the following:
public
class
Date
{
private
String month = "January";
private
int
day = 1;
private
int
year = 1000;