1
6
7 public class Taulukko {
8 public class TaulukkoTaysiException extends Exception {
9 TaulukkoTaysiException(String viesti) { super(viesti); }
10 }
11
12 private int alkiot[];
13 private int lkm;
14
15 public Taulukko() {
16 alkiot = new int[10];
17 }
18
19 public Taulukko(int koko) {
20 alkiot = new int[koko];
21 }
22
23 public void lisaa(int i) throws TaulukkoTaysiException {
24 if ( lkm >= alkiot.length ) throw new TaulukkoTaysiException("Tila loppu");
25 alkiot[lkm++] = i;
26 }
27
28 public String toString() {
29 StringBuffer s = new StringBuffer("");
30 for (int i=0; i<lkm; i++)
31 s.append(" " + alkiot[i]);
32 return s.toString();
33 }
34
35 public void set(int i, int luku) throws IndexOutOfBoundsException {
36 if ( ( i < 0 ) || ( lkm <= i ) ) throw new IndexOutOfBoundsException("i = " + i);
37 alkiot[i] = luku;
38 }
39
40 public int get(int i) throws IndexOutOfBoundsException {
41 if ( ( i < 0 ) || ( lkm <= i ) ) throw new IndexOutOfBoundsException("i = " + i);
42 return alkiot[i];
43 }
44
45 public static void main(String[] args) {
46 Taulukko luvut = new Taulukko();
47 try {
48 luvut.lisaa(0); luvut.lisaa(2);
49 luvut.lisaa(99);
50 } catch ( TaulukkoTaysiException e ) {
51 System.out.println("Virhe: " + e.getMessage());
52 }
53 System.out.println(luvut);
54 luvut.set(1,4);
55 System.out.println(luvut);
56 int luku = luvut.get(2);
57 System.out.println("Paikassa 2 on " + luku);
58 try {
59 luvut.set(21, 4);
60 }
61 catch (IndexOutOfBoundsException e) {
62 System.out.println("Virhe: " + e.getMessage());
63 }
64 }
65 }
66