Skip to content
Snippets Groups Projects
Commit 8c4545fd authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

Lisaa-metodin toteutus

parent 6039271f
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,75 @@ package kerho;
*/
public class Jasenet {
private static final int MAX_JASENIA = 5;
private int lkm = 0;
private Jasen[] alkiot;
/**
* Luodaan alustava taulukko
*/
public Jasenet() {
alkiot = new Jasen[MAX_JASENIA];
}
/**
* Lisää uuden jäsenen tietorakenteeseen. Ottaa jäsenen omistukseensa.
* @param jasen lisätäävän jäsenen viite. Huom tietorakenne muuttuu omistajaksi
* @throws SailoException jos tietorakenne on jo täynnä
* @example
* <pre name="test">
* #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.anna(3) === aku1; #THROWS IndexOutOfBoundsException
* jasenet.lisaa(aku1); jasenet.getLkm() === 4;
* jasenet.lisaa(aku1); jasenet.getLkm() === 5;
* jasenet.lisaa(aku1); #THROWS SailoException
* </pre>
*/
public void lisaa(Jasen jasen) throws SailoException {
if (lkm >= alkiot.length) throw new SailoException("Liikaa alkioita");
alkiot[lkm] = jasen;
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) throws IndexOutOfBoundsException {
if (i < 0 || this.lkm <= i)
throw new IndexOutOfBoundsException("Laiton indeksi: " + i);
return alkiot[i];
}
/**
* Palauttaa kerhon jäsenten lukumäärän
* @return jäsenten lukumäärä
*/
public int getLkm() {
return lkm;
}
/**
* @param args ei käytössä
*/
......@@ -20,16 +89,21 @@ public class Jasenet {
aku2.rekisteroi();
aku2.vastaaAkuAnkka();
jasenet.lisaa(aku);
jasenet.lisaa(aku2);
try {
jasenet.lisaa(aku);
jasenet.lisaa(aku2);
} catch (SailoException e) {
System.err.println(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 indeksi: " + i);
jasen.tulosta(System.out);
}
}
......
package kerho;
/**
* Poikkeusluokka tietorakenteesta aiheutuville poikkeuksille.
* @author Vesa Lappalainen
* @version 1.0, 22.02.2003
*/
public class SailoException extends Exception {
private static final long serialVersionUID = 1L;
/**
* Poikkeuksen muodostaja jolle tuodaan poikkeuksessa
* käytettävä viesti
* @param viesti Poikkeuksen viesti
*/
public SailoException(String viesti) {
super(viesti);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment