1   package kalenteri;
2   /**
3    * Sisältö-luokka ylläpitää tietoa yksittäisestä sisällöstä.
4    * Tarkemmin sen nimestä.
5    * Mukana myös id ja next_id, Sisallot-taulukon hallintaa varten.
6    * @author Timo Koski
7    *
8    */
9   public class Sisalto {
10  
11      private int id;
12      private static int next_id;
13      
14      private String sisallonNimi;
15      
16      /* MUODOSTAJA JA REKISTERÖINTI */
17      /**
18       * Muodostaja.
19       * Sisällönnimi pakollisena parametrina.
20       * @param nimi
21       */
22      public Sisalto(String nimi) {
23          this.sisallonNimi = nimi;
24          rekisteroi();
25      }   
26      /**
27       * Rekisteröidään sisällolle id-numero.
28       * Vrt. luentoesimerkit
29       * @return id
30       */
31      private int rekisteroi() {
32          id = next_id;
33          next_id++;
34          return id;
35      }
36      
37      /* GETTERIT JA SETTERIT */
38      /**
39       * Palauttaa id:n
40       * @return id
41       */
42      public int getId() {
43          return id;
44      }
45      /**
46       * Getteri sisällön nimelle. 
47       * @return sisällön nimi
48       */
49      public String getSisallonNimi() {
50          return sisallonNimi;
51      }
52      /**
53       * Asetetaan sisällön nimi uudestaan.
54       * @param s
55       */
56      public void setSisallonNimi(String s) {
57          this.sisallonNimi = s;
58      }
59      
60      /* TOSTRING */
61      /**
62       * toString palauttaa sisällön nimen.
63       */
64      @Override
65      public String toString() {
66          return sisallonNimi;
67      }
68      
69      /* PÄÄOHJELMA */
70      /**
71       * Pääohjelma luokan testaamiseen.
72       * @param args ei käytössä
73       * @example
74       * <pre name="test">
75       * Sisalto r = new Sisalto("Au");
76       * Sisalto q = new Sisalto("Maculele");
77       * r.toString() === "Au";
78       * q.toString() === "Maculele";
79       * </pre>
80       */
81      public static void main(String[] args) {
82          Sisalto s = new Sisalto("Bananeira");
83          s.rekisteroi();
84          System.out.println(s);
85      }
86  }
87