我知道可以通过使用“this”从另一个构造函数调用一个构造函数。从另一个构造函数调用构造函数的实际场景
但我想知道的是,为什么我们这样做(即调用从另一个构造函数构造函数)
任何人都可以涉及的地方,这可能是真正有用的一个简单的例子?
我知道可以通过使用“this”从另一个构造函数调用一个构造函数。从另一个构造函数调用构造函数的实际场景
但我想知道的是,为什么我们这样做(即调用从另一个构造函数构造函数)
任何人都可以涉及的地方,这可能是真正有用的一个简单的例子?
ArrayList是一个很好的例子。默认构造函数调用具有底层数组初始容量的构造函数。这看起来是这样的:
public ArrayList()
{
this(10);
}
public ArrayList(int capacity)
{
objects = new Object[capacity];
}
同样适用于'new HashMap()'和其他可以默认指定方式创建的对象 – dantuch
如果我们不想重复代码:
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;
}
怎么样一个简单的类是这样的:
class Person {
String name;
Person(String firstName, String lastName) {
this(firstName + lastName);
}
Person(String fullName) {
name = fullName;
}
}
不同的构造给你的自由创建不同风格的相似对象。
我认为你正在寻找描述它的术语被称为[构造函数重载](http://stackoverflow.com/questions/1182153/constructor-overloading-in-java-best-practice) –