views:

72

answers:

4

I have Constructor Tree(int a, int b, int c) and second Constructor Tree(int a, int b, int c, String s). How to load second constructor from first just to save writing all the logics? I thought about something like this but it gives me 'null' object.

public Tree(int a, int b, int c){
    Tree t1 = new Tree(a, b, c, "randomString");
}
+7  A: 

The magic word is this, e.g.

public Tree( int a, int b, int c, String d ) {
    // Do something
}

public Tree( int a, int b, int c ) {
    this( a, b, c, "randomString" );
}
Rob
That's the one. You can use this approach to do what is called constructor chaining:http://www.javabeginner.com/learn-java/java-constructors (see Java Overloaded Constructors)
James P.
+1  A: 
public Tree(int a, int b, int c){
    this(a, b, c, "randomString");
}
TofuBeer
+1  A: 

in the first line of a constructor, you can call another constructor:

public Tree(int a, int b, int c, String s)
{
}

public Tree(int a, int b, int c)
{
    this(a,b,c,"someString");
}
Joel
+1  A: 

You can simply call the other constructor directly, using the keyword this to refer to the class containing the method. So, what you want is:

public Tree(int a, int b, int c){
    this(a, b, c, "randomString");
}
Justin Ardini