Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Джава задача 2 срочноооо

Никита Смирнов Знаток (320), на голосовании 1 год назад
В компьютерной игре часто приходиться клонировать монстров. Для этого создан класс Monstr, в котором хранится следующая информация: имя монстра, его здоровье и броня. В классе есть конструктор с соответствующими параметрами. Допишите конструктор в класс Monstr, который принимает объект класса Monstr (такие конструкторы называются обычно конструкторами копирования).

class Monstr {
String name;
int health;
int armor;

Monstr(String name, int health, int armor) {
this.name = name;
this.health = health;
this.armor = armor;
}

// YOUR CODE will placed HERE

public String toString() {
return "Name: " + name + "\n" +
"Health: " + health + "\n" +
"Armor: " + armor;
}
}
так чтобы, например, фрагмент кода

Monstr monstr1 = new Monstr("Monstr", 100, 200);
Monstr monstr2 = new Monstr(monstr1);
System.out.println(monstr2);

вывел в консоль:

Name: Monstr
Health: 100
Armor: 200
В ответе необходимо указать только конструктор копирования.
Голосование за лучший ответ
Violet Prince Знаток (413) 1 год назад
Чтобы реализовать конструктор копирования для класса Monstr, мы должны скопировать имя, здоровье и броню из объекта Monstr, который передается в качестве аргумента, и установить эти значения в новый объект. Вот пример:

```
Monstr(Monstr other) {
this.name= other.name;
this.health= other.health;
this.armor = other.armor;
}
```

В этом коде мы создаем конструктор, который принимает объект Monstr в качестве аргумента. Затем мы присваиваем значения полей имени, здоровья и брони из переданного Monster other в соответствующие поля вновь создаваемого объекта.

Теперь мы можем создать два объекта Monstr и клонировать один в другой с помощью конструктора копирования:

```
Monstr monstr1 = new Monstr("Monstr", 100, 200);
Monstr monstr2 = new Monstr(monstr1);
System.out.println(monstr2);
```

После выполнения этого кода будет выведено в консоль:

```
Name: Monstr
Health: 100
Armor: 200
```

Это означает, что мы успешно скопировали все значения из объекта monstr1 в объект monstr2 с помощью конструктора копирования.
Похожие вопросы