package dk.itu.oop.lecture3; import java.util.Vector; class Sir { final private String name; public Sir(String name) { if (find(name) != null) throw new Error("Do not duplicate Sir " + name); this.name = name; allSirs[numberOfSirs] = this; numberOfSirs ++; } public String toString(){return "Sir " + name;} // Static members private static Sir[] allSirs = new Sir[250]; private static int numberOfSirs = 0; private static Sir find(String name){ int index = 0; while (index < numberOfSirs){ if (allSirs[index].name == name ) return allSirs[index]; index ++; } return null; } public static Sir getNewOrFind(String name){ Sir sn = find(name); if (sn != null) return sn; else{ sn = new Sir(name); return sn; } } }