Stefan
Stefan

Reputation: 2613

Good style to call advanced constructor from unparametrized constructor?

I was just discussing with some colleagues about Java constructors, design-patterns and good way to initialize objects with a unparametrized constructor if I normally await some parameters.

One of the older ones came up with his way of implementing always something like:

public class Foo {

public Foo() {
this(0,0,0);
}

public Foo(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
..
}

My question is, is that good style and what is its behaviour exactly?

From what I understand should be:

Upvotes: 4

Views: 309

Answers (2)

Aravind Yarram
Aravind Yarram

Reputation: 80194

This is known as Telescoping Constructor pattern. In Effective Java, Joshua provides alternatives with suggestions on which one to use when.

Upvotes: 6

cherouvim
cherouvim

Reputation: 31903

So the GC has then to delete the first created one.

No. Only 1 instance is ever created when chaining constructors.

To answer your question, yes, it's good style, assuming you need both foo() and foo(int, int, int)

Upvotes: 6

Related Questions