Господа!) Объясните как тут все должно работать?
1. Видимо тут нужны методы equals и hashCode , но зачем ? - в условии про них ничего не сказано...
2. Не могу понять как реализовывать метод clone, как это делать? - в лекциях так просто , а тут не могу сообразить...
Добился этого вывода в консоль , помогите разобраться:
com.javarush.task.task21.task2108.Solution$Tree@543c6f6d - это tree
com.javarush.task.task21.task2108.Solution$Tree@13eb8acf - это его клон? почему тут 13eb8acf ,а в настоящем дереве 543c6f6d , они должны быть одинаковыми? или же..
[Ljava.lang.String;@51c8530f - tree.branches - ветка
[Ljava.lang.String;@51c8530f - clone.branches - клон ветки - почему 51c8530f одинаковые? и должны ли быть одинаковыми
зы : если вопросы простые , не ругайтесь , лекции очень трудно заходят)
package com.javarush.task.task21.task2108;
import java.io.*;
import java.util.*;
/*
Клонирование растений
*/
public class Solution {
public static void main(String[] args) {
Tree tree = new Tree("willow", new String[]{"s1", "s2", "s3", "s4"});
Tree clone = null;
try {
clone = tree.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
System.out.println(tree);
System.out.println(clone);
System.out.println(tree.branches);
System.out.println(clone.branches);
}
public static class Plant {
private String name;
public Plant(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public static class Tree extends Plant implements Cloneable {
private String[] branches;
public Tree(String name, String[] branches) {
super(name);
this.branches = branches;
}
public String[] getBranches() {
return branches;
}
public Tree clone() throws CloneNotSupportedException{
Tree tree = new Tree(super.getName(), this.getBranches());
return tree;
}
}
}