Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,为什么要将对象作为参数传递?_Java_Object_Parameters_Arguments - Fatal编程技术网

在java中,为什么要将对象作为参数传递?

在java中,为什么要将对象作为参数传递?,java,object,parameters,arguments,Java,Object,Parameters,Arguments,我知道如何将对象作为参数传递,但我需要知道它们在编程中的用途 它有什么用处 请告诉我。提前感谢。Box mybox2=新邮箱(mybox)本质上是一个复制构造函数 在构造函数中,理想情况下,您可以将myBox的属性复制到myBox2中 好处不多: 克隆方法的替代方法 只需提取参数的数据,就可以转发给 正则构造函数 可以与不可变对象一起使用 当您有具有许多属性的对象并且希望复制它们时 这也是一个很好的解读:它几乎只是用来复制对象。它可以以试错的方式使用,也可以像保存状态一样使用 以记事本为例,

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

它有什么用处

请告诉我。提前感谢。

Box mybox2=新邮箱(mybox)
本质上是一个复制构造函数

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

好处不多:

  • 克隆方法的替代方法
  • 只需提取参数的数据,就可以转发给 正则构造函数
  • 可以与不可变对象一起使用
  • 当您有具有许多属性的对象并且希望复制它们时

这也是一个很好的解读:

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

以记事本为例,您用5个单词保存一个文档,然后在其中再写5个单词。它几乎复制了自己,增加了5个单词

这似乎真的很难解释

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

希望有帮助


贾罗德。

这是一个非常广泛的问题;)试着用一种更简单的方式思考
对象

编程中的对象类似于现实世界中的对象。比如说“门”。门是一个对象,该对象具有某些属性。例如,它可以是木制的,也可以是蓝色的。然后此门可以附着其他对象。比如“门把手”。在Java中,这可能如下所示:

Box mybox = new Box(1,2);
Box mybox2 = new Box(mybox);
就在这里。你的门需要另一个物体——门把手。因此,在您的示例中,您将一个
对象传递给另一个
对象,可能与其他人所说的将框属性复制到新框中一样:

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);

嗨,安妮什,我知道。但我想知道我们为什么要这么做?例如,构造函数用于初始化变量。我需要这样的回答。将对象作为参数传递的原因是什么?谢谢,我懂一点。但还是很困惑。我的意思是,当你可以简单地传递变量或使用过的输入时,为什么你需要把对象作为变量传递呢?我想是简单的缘故。。。例如,矩形:
Rectangle()
-
Rectangle(int-width,int-height)
-
Rectangle(int-x,int-y,int-width,int-height)
-
Rectangle(Rectangle-r)
您可以有一个空白矩形,一个0,0处的矩形,带宽度和高度,一个带宽度和高度的矩形,或者从原始图像上复制一个矩形。。。所以,不用一直输入x,y,width,height,你只需要写,rect。对不起,我还是很困惑谢谢你,伙计。一个明确的答案。哇,现在我明白这个概念了。
public class Box{
   String content;

   public Box(Box that){
     this.content = that.getContent();
   }

   public String getContent(){
     return this.content;
   }
}