Note that there are some explanatory texts on larger screens.

plurals
  1. POjava constructor order
    primarykey
    data
    text
    <p>This java program is easy and full of comment,so you can understand it fast.however,why in construct staff[1],the program first go to the statement:</p> <pre><code>this("Employee #" + nextId, s); </code></pre> <p>then go to the object initialization block,and then go back to the statement,how confusion.why not it first use the object initialization block</p> <pre><code>import java.util.*; public class ConstructorTest { public static void main(String[] args) { // fill the staff array with three Employee objects Employee[] staff = new Employee[3]; staff[0] = new Employee("Harry", 40000); staff[1] = new Employee(60000); staff[2] = new Employee(); // print out information about all Employee objects for (Employee e : staff) System.out.println("name=" + e.getName() + ",id=" + e.getId() + ",salary=" + e.getSalary()); } } class Employee { // three overloaded constructors public Employee(String n, double s) { name = n; salary = s; } public Employee(double s) { // calls the Employee(String, double) constructor this("Employee #" + nextId, s); } // the default constructor public Employee() { // name initialized to ""--see below // salary not explicitly set--initialized to 0 // id initialized in initialization block } public String getName() { return name; } public double getSalary() { return salary; } public int getId() { return id; } private static int nextId; private int id; private String name = ""; // instance field initialization private double salary; // static initialization block static { Random generator = new Random(); // set nextId to a random number between 0 and 9999 nextId = generator.nextInt(10000); } // object initialization block { id = nextId; nextId++; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload