在我已经创建了类的对象之后,如何调用no arg构造函数?

时间:2010-02-15 11:31:52

标签: java constructor

我创建了一个类的对象:

Rectangle rec = new Rectangle(2,4);

我的矩形和高度为2,宽度为4。

但是无论如何我可以在我的代码中调用no arg构造函数而不创建新对象吗?

不这样做:

Rectangle rec2 = new Rectangle();

6 个答案:

答案 0 :(得分:2)

通常,这表示您需要重构构造函数,以使两个或多个构造函数共有的所有代码都包含在单独的(非构造函数)方法中。

答案 1 :(得分:1)

构造函数按其定义创建新对象。

如果你不再需要rec,只要Rectangle没有arg构造函数,你就可以rec = new Rectangle()

或者您只想替换当前矩形的值?如果是这样,只需通过setter进行更改即可创建一个更新两个值的方法......

答案 2 :(得分:0)

不,你不能。您可以使用反射创建新对象而不使用new关键字,但我不确定它是否调用构造函数。

答案 3 :(得分:0)

您可以在方法中设置Object的基本属性,并在构造函数中调用该方法

在你的情况下使用rec = null; rec = new Rectangle(); //如果不需要Rectangle(2,4)

答案 4 :(得分:0)

不,你只能调用一个构造函数。

如果要覆盖坐标,可以使用setBounds方法,例如

rec.setBounds(0,0,0,0);

但除非您正在开发手机游戏,否则重新使用旧矩形并没有太大意义,而且创建一个新矩阵也更简单。

答案 5 :(得分:0)

你绝对可以,这是

public class Example {
    //no arg constructor
    public Example() {
        //your code
    }
    //constructor with argument
    public Example(String arg) {
       //call the no arg constructor
       this();
       //do something else
    }
}