这样的事情:
Class Object{
Object(Object obj){}
}
你什么时候需要这样做?我只想知道一两个例子。
答案 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棋盘游戏项目,其中Board
和Move
被表示为类。为了创建一个新的游戏板,类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
构造函数。