<< 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.

Back to Question 10

Answer 9

A. Compiler Error

Explanation 9

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask