public class SubstanceList { private final Substance[] substances = { new Water(), new Carbon(), new MgSiO3() }; private int index; public SubstanceList() { index = 0; for(int i=0; i= substances.length) { index = substances.length-1; return substances[index]; } else return substances[index = i]; } public int indexOf(Substance s) { for(int i=0; i < substances.length; i++) { if(s.equals(substances[i])) return i; } System.out.println("**** Error in SubstanceList.indexOf => substance not found****"); return -1; } public Substance current() { return substances[index]; } public Substance next() { index++; if(index == substances.length) index = 0; return substances[index]; } public Substance previous() { index--; if(index < 0) index = substances.length-1; return substances[index]; } }