2

我知道可以通过使用“this”从另一个构造函数调用一个构造函数。

但我想知道的是,我们为什么要这样做(即从另一个构造函数调用构造函数)

任何人都可以举一个简单的例子来说明这实际上可能有用吗?

4

3 回答 3

10

ArrayList 是一个很好的例子。默认构造函数调用获取底层数组初始容量的构造函数。这看起来像这样:

public ArrayList()
{
    this(10);
}

public ArrayList(int capacity)
{
    objects = new Object[capacity];
}
于 2013-08-16T17:15:14.040 回答
2

如果我们不想重复代码:

class Foo{

    int requiredParam;
    String name;
    double optionalPrice;
    Object extraObject;
    public Foo(int rp, String name){
        this.requiredParam=rp;
        this.name=name
    }
    public Foo(int rp, String name, double op, Object e){
        this(rp, name);
        this.optionalPrice=op;
        this.extraObject=e;
    }
于 2013-08-16T17:16:17.800 回答
1

How about a simple class like this:

  class Person {

        String name;

        Person(String firstName, String lastName) {
            this(firstName + lastName);
        }

        Person(String fullName) {
            name = fullName;
        }
    }

Different constructors give you the freedom of creating similar objects in different flavors.

于 2013-08-16T17:19:20.377 回答