Понадобилось создать для каждого объекта уникальный идентификатор. Я никогда ничем подобным не занимался, потому навелосипедил это:
public abstract class Figure {
public Figure() {
id = new Random().nextInt();
}
private int id;
@Override
public String toString() {
String classname = getClass().getCanonicalName();
return classname.substring(classname.lastIndexOf('.') + 1) + "@" + Integer.toHexString(id);
}
}