2014-02-13 2 views
0
Box mybox = new Box(1,2); 
Box mybox2 = new Box(mybox); 

Я знаю, как передавать объекты в качестве аргументов, но мне нужно знать, что их использование в программировании.Почему мы передаем объекты в качестве аргументов в java?

Как это полезно?

Скажите, пожалуйста. Заранее спасибо.

ответ

0

Box mybox2 = new Box(mybox); по существу является конструктором копирования.

В вашем конструкторе вы идеально копируете свойства myBox в myBox2.

Несколько преимуществ:

  • альтернативы клонировать методу
  • просто извлечь данные по аргументу, и могут быть направлены на регулярного конструктор
  • могут быть использованы с неизменяемыми объектами
  • , когда вам имеют объекты с большим количеством объектов и хотели бы их скопировать.

Также хорошо читайте: Josh Bloch on Design

+0

привет Аниш, я знаю, что. Но я хочу знать, почему мы это делаем? Например, для инициализации переменных используется конструктор. Мне нужен такой ответ. В чем причина передачи объектов в качестве аргументов? –

+0

СПАСИБО ДРУГУ. теперь я четко понял эту концепцию. –

0

Это просто используется для дублирования объекта. Он может использоваться в пробном и ошибочном способе или как состояние сохранения.

Возьмите Блокнот, например, вы сохраняете документ с 5 словами, и вы пишете еще 5 слов. Это в значительной степени дублируется и добавлено 5 слов.

Кажется, очень трудно объяснить.

Вы можете изменить дубликат коробки без изменения оригинала, если это имеет смысл.

Надеюсь, это помогло.

Jarod.

+0

Спасибо, я понял немного. Но все-таки смущенный.Я имею в виду, когда вы можете просто передавать переменные или использовать входные данные, зачем вам передавать объекты в качестве переменных? –

+0

Простота, я думаю ... Например: Прямоугольники: 'Rectangle()' - 'Rectangle (int width, int height)' - 'Rectangle (int x, int y, int width, int height)' - ' Прямоугольник (Rectangle r) ' Вы можете иметь пустой прямоугольник, прямоугольник с 0,0 по ширине и высоте, прямоугольник в x, y с шириной и высотой или прямоугольник, скопированный напротив оригинала ... Итак, вместо того, чтобы вводить x, y, width, height, все время, вы можете просто написать, rect. Извините, я все еще довольно запутан. : P – TheBrenny

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; 
    } 
} 
+0

Woah, спасибо, человек. Ясный ответ. вау, теперь я понял эту концепцию. –

Смежные вопросы