/** * */ package kerho; /** * * @author vesal * @version 22.2.2011 */ public class Jasenet { private Jasen[] alkiot = new Jasen[5]; private int lkm = 0; /** * Lisää uuden jäsenen tietorakenteeseen. Ottaa jäsenen omistukseensa. * @param jasen lisätäävän jäsenen viite. * @throws SailoException jos alkio ei mahdu * @example *
* #THROWS SailoException * Jasenet jasenet = new Jasenet(); * Jasen aku1 = new Jasen(), aku2 = new Jasen(); * jasenet.getLkm() === 0; * jasenet.lisaa(aku1); jasenet.getLkm() === 1; * jasenet.lisaa(aku2); jasenet.getLkm() === 2; * jasenet.lisaa(aku1); jasenet.getLkm() === 3; * jasenet.anna(0) === aku1; * jasenet.anna(1) === aku2; * jasenet.anna(2) === aku1; * jasenet.anna(1) == aku1 === false; * jasenet.anna(1) == aku2 === true; * jasenet.lisaa(aku1); jasenet.getLkm() === 4; * jasenet.lisaa(aku1); jasenet.getLkm() === 5; * jasenet.lisaa(aku1); #THROWS SailoException **/ public void lisaa(Jasen jasen) throws SailoException { if (lkm >= alkiot.length) throw new SailoException("Liikaa alkioita"); alkiot[lkm] = jasen; lkm++; } /** * Palauttaa kerhon jäsenten lukumäärän * @return jäsenten lukumäärä */ public int getLkm() { return lkm; } /** * Palauttaa viitteen i:teen jäseneen. * @param i monennenko jäsenen viite halutaan * @return viite jäseneen, jonka indeksi on i * @throws IndexOutOfBoundsException jos i ei ole sallitulla alueella */ public Jasen anna(int i) { return alkiot[i]; } /** * @param args ei käytössä */ public static void main(String[] args) { Jasenet jasenet = new Jasenet(); Jasen aku = new Jasen(), aku2 = new Jasen(); aku.rekisteroi(); aku.vastaaAkuAnkka(); aku2.rekisteroi(); aku2.vastaaAkuAnkka(); try { jasenet.lisaa(aku); jasenet.lisaa(aku2); } catch (SailoException e) { System.out.println("Ei mahu: " + e.getMessage()); } System.out.println("============= Jäsenet testi ================="); for (int i = 0; i < jasenet.getLkm(); i++) { Jasen jasen = jasenet.anna(i); System.out.println("Jäsen nro: " + i); jasen.tulosta(System.out); } } }