Java: cloneable
Teacher:
package io.vend.velocity.vend; public class Teacher implements Cloneable{ private String name; public Teacher(String name){ this.name = name; } @Override protected Teacher clone() throws CloneNotSupportedException{ return (Teacher) super.clone(); } @Override public String toString(){ final StringBuilder sb = new StringBuilder("Teacher{"); sb.append("name='").append(name).append('\''); sb.append('}'); return sb.toString(); } public String getName(){ return name; } public void setName(String name){ this.name = name; } }
Student:
package io.vend.velocity.vend; public class Student implements Cloneable{ private String name; private Teacher teacher; public Student(String name, Teacher teacher){ this.name = name; this.teacher = teacher; } @Override protected Student clone() throws CloneNotSupportedException{ Student student = null; try{ student = (Student) super.clone(); }catch(CloneNotSupportedException e){ e.printStackTrace(); } return student; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public Teacher getTeacher(){ return teacher; } public void setTeacher(Teacher teacher){ this.teacher = teacher; } @Override public String toString(){ final StringBuilder sb = new StringBuilder("Student{"); sb.append("name='").append(name).append('\''); sb.append(", teacher=").append(teacher); sb.append('}'); return sb.toString(); } }