<< Chapter < Page | Chapter >> Page > |
5 222.0 true
As you can see, the values contained in the instance variables named myInt and myBoolean are the values of 5 and true placed there by the constructor, based on incoming parameter values. The value in the instance variable named myDouble is the value placed there by the initialization expression when the variable was declared.
Default initialization
If you don't take any steps to initialize instance variables, they will be automatically initialized. Numeric instance variables will be initialized withzero value for the type of variable involved. Instance variables of type boolean will be initialized to false. Instance variables of type char will be initialized to a Unicode value with all 16 bits set to zero. Reference variableswill be initialized to null.
Initialization expression
If you provide an initialization expression for an instance variable, the value of the expression will overwrite the default value, and the value of theinitialization expression will become the initial value for the instance variable.
Assignment in constructor code
If you use an assignment statement in a constructor to assign a value to an instance variable, that value will overwrite the value previously placed in theinstance variable either by default, or by use of an initialization expression. The constructor has the "last word" on the matter of initialization of instancevariables.
A. Compiler Error
The default constructor
When you define a class, you are not required to define a constructor for the class. If you do not define a constructor for the class, a default constructorthat takes no arguments will be provided on your behalf. You can instantiate new objects of the class by applying the new operator to the default constructor asshown in the following code fragment from Question 8 .
new Worker().display();
Behavior of the default constructor
As illustrated in Question 8 , when you don't provide a constructor that purposely initializes the values of instance variables, or initialize them insome other manner, they will automatically be initialized to the default values described in Question 8 .
Defining overloaded constructors
You can also define one or more overloaded constructors having different formal argument lists. The typical intended purpose of such constructors is touse incoming parameter values to initialize the values of instance variables in the new object.
A parameterized constructor
This is illustrated in the following code fragment. This fragment receives two incoming parameters and uses the values of those two parameters toinitialize the values of two instance variables belonging to the new object.
class Worker{
private int myInt;private boolean myBoolean;
public Worker(int x, boolean y){myInt = x;
myBoolean = y;}//end parameterized constructor//display() omitted for brevity}// end class Worker
If you define any constructors ...
However, there is a pitfall that you must never forget.
If you define any constructors in your new class, you must define all constructors that will ever be required for your new class.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?