Organizational Research By

Surprising Reserch Topic

How do I call one constructor from another in Java?



asked May 15, 2015 in Core java by rajesh
0 votes
26 views



Related Hot Questions

2 Answers

0 votes
es, it is possible:

public class Foo
{
    private int x;

    public Foo()
    {
        this(1);
    }

    public Foo(int x)
    {
        this.x = x;
    }
}
To chain to a particular superclass constructor instead of one in the same class, use super instead of this. Note that you can only chain to one constructor, and it has to be the first statement in your constructor body.
answered May 15, 2015 by rajesh
0 votes
Using this(args). The preferred pattern is to work from the smallest constructor to the largest.

public class Cons {

 public Cons() {
  // A no arguments constructor that sends default values to the largest
  this(madeUpArg1Value,madeUpArg2Value,madeUpArg3Value);
 }

 public Cons(int arg1, int arg2) {
  // An example of a partial constructor that uses the passed in arguments
  // and sends a hidden default value to the largest
  this(arg1,arg2, madeUpArg3Value);
 }

 // Largest constructor that does the work
 public Cons(int arg1, int arg2, int arg3) {
  this.arg1 = arg1;
  this.arg2 = arg2;
  this.arg3 = arg3;
 }
}
You can also use a more recently advocated approach of valueOf or just "of":

public class Cons {
 public static Cons newCons(int arg1,...) {
  // This function is commonly called valueOf, like Integer.valueOf(..)
  // More recently called "of", like EnumSet.of(..)
  Cons c = new Cons(...);
  c.setArg1(....);
  return c;
 }
}
To call a super class, use super(asdf). The call to super must be the first call in the constructor or you will get a compiler error.
answered May 15, 2015 by rajesh

...