构造函数的用途与参数的类型相同吗? Java的

时间:2014-12-25 05:50:32

标签: java constructor

这样的事情:

Class Object{

    Object(Object obj){}

}

你什么时候需要这样做?我只想知道一两个例子。

4 个答案:

答案 0 :(得分:2)

主要用于复制构造函数。一个例子如下:

  

与C ++一样,Java也支持复制构造函数。但是,与C ++,Java不同   如果你不自己编写,则不会创建默认的复制构造函数。

class Complex {

    private double re, im;

    // A normal parametrized constructor
    public Complex(double re, double im) {
        this.re = re;
        this.im = im;
    }

    // copy constructor
    Complex(Complex c) {
        System.out.println("Copy constructor called");
        re = c.re;
        im = c.im;
    }
    ...

您可以参考here了解更多信息。

答案 1 :(得分:0)

这可以是复制现有对象或稍微修改现有对象的有效方法。

我曾经参与过Checkers棋盘游戏项目,其中BoardMove被表示为类。为了创建一个新的游戏板,类Board有一个构造函数,它接受另一个Board实例以及一个Move实例。构造函数创建了一个新的游戏板,如果Move已应用于原始板,则该游戏板将存在。

这只是一个例子。

答案 2 :(得分:0)

基本上,当一个类在制作时需要返回自己类型的对象时。

class Player{
    int jerseyNumber;
    Player(){

    }
    Player (Player p){
        this.jerseyNumber = p.getJerseryNumber();
    }

    int getJerseryNumber(){
        return jerseyNumber;
    }
void setJerseyNumber(int jerseyNumber){
    this.jerseyNumber = jerseyNumber;
}
}

你可以这样做。

Player ponting;
ponting.setJerseyNumber(14);
Player somebodyelse(ponting);

这有助于从现有属性创建新对象。所以基本上这叫做复制构造函数。

答案 3 :(得分:0)

那么您应该了解以下代码:

class Object{

    Object(Object obj){}

}

Object有一个构造函数,它接受类型为Object的类的参数。 您可以使用以下Object

class MainClass{
 public static void main(String args[]){
    Object obj=new Object(new Object());
  }
}

这里将Object类的匿名对象传递给Object构造函数。