【发布时间】:2014-03-12 09:00:06
【问题描述】:
Box mybox = new Box(1,2);
Box mybox2 = new Box(mybox);
我知道如何将对象作为参数传递,但我需要知道它们在编程中的用途。
它有什么用处?
请告诉我。提前致谢。
【问题讨论】:
标签: java object parameters arguments
Box mybox = new Box(1,2);
Box mybox2 = new Box(mybox);
我知道如何将对象作为参数传递,但我需要知道它们在编程中的用途。
它有什么用处?
请告诉我。提前致谢。
【问题讨论】:
标签: java object parameters arguments
它几乎只是用来复制对象。它可以以反复试验的方式使用,或者类似于保存状态。
以记事本为例,您保存一个包含 5 个单词的文档,然后在其中再写 5 个单词。它几乎重复了自己并添加了 5 个单词。
似乎真的很难解释。
如果有意义的话,您可以在不更改原始框的情况下更改复制框。
希望对您有所帮助。
贾罗德。
【讨论】:
Rectangle() - Rectangle(int width, int height) - Rectangle(int x, int y, int width, int height) - Rectangle(Rectangle r) 您可以有一个空白矩形,一个 0,0 处的矩形宽度和高度,x,y 处的矩形,具有宽度和高度,或者从原始复制的矩形......所以不要一直输入 x,y,宽度,高度,你可以写,rect .对不起,我还是很困惑。 :P
Box mybox2 = new Box(mybox);本质上是一个拷贝构造函数。
在您的构造函数中,您最好将 myBox 的属性复制到 myBox2 中。
几个好处:
【讨论】:
这是一个非常广泛的问题 ;) 尝试以更简单的方式思考 Objects:
编程中的对象就像现实世界中的对象。比如“门”。门是一个对象,该对象具有某些属性。例如,它可以由木头制成,并且可以具有蓝色。然后这扇门可以附加其他物体。比如“门把手”。在 Java 中,这可能如下所示:
public class Door{
String color;
String material;
Knob doorKnob;
public Door(String color, String material, Knob doorKnob){
this.color = color;
this.material = material;
this.doorKnob = doorKnob;
}
}
public class Knob{
String material;
public Knob(String material){
this.material = material;
}
}
// then when you want to create your door you first have to get a doorknob
....
Knob myDoorKnob = new Knob("chrome");
Door myDoor = new Door("blue", "wood", myDoorKnob);
你有它。你的门需要另一个对象——门把手。因此,在您的示例中,您将 Box 对象传递给另一个 Box 对象,可能就像其他人所说的将盒子属性复制到新盒子中一样:
public class Box{
String content;
public Box(Box that){
this.content = that.getContent();
}
public String getContent(){
return this.content;
}
}
【讨论】: