为什么我们在java中传递对象作为参数?

时间:2014-02-13 13:00:47

标签: java object parameters arguments

Box mybox = new Box(1,2);
Box mybox2 = new Box(mybox);

我知道如何将对象作为参数传递,但我需要知道它们在编程中的用途。

它有用吗?

请告诉我。提前谢谢。

3 个答案:

答案 0 :(得分:0)

Box mybox2 = new Box(mybox);本质上是一个复制构造函数。

在构造函数中,理想情况下,将myBox的属性复制到myBox2中。

很少有好处:

  • 克隆方法的替代方法
  • 简单地提取参数的数据,并可以转发给 常规构造函数
  • 可以与不可变对象一起使用
  • 当您拥有包含许多属性的对象并希望复制它们时

同样好的阅读:Josh Bloch on Design

答案 1 :(得分:0)

它几乎只用于复制对象。它可以以反复试验的方式使用,也可以像保存状态一样使用。

以记事本为例,您保存了一个包含5个单词的文档,并在其中再写了5个单词。它几乎是重复的,并添加了5个单词。

似乎很难解释。

如果有意义,您可以在不更改原件的情况下更改复制框。

希望它有所帮助。

贾罗德。

答案 2 :(得分:0)

这是一个非常广泛的问题;)尝试以更简单的方式考虑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;
   }
}