1   package kerho;
2   
3   import java.io.*;
4   
5   /**
6    * Harrastus joka osaa mm. itse huolehtia tunnus_nro:staan.
7    *
8    * @author Vesa Lappalainen
9    * @version 1.0, 22.02.2003
10   */
11  public class Harrastus {
12    private int    tunnusNro;
13    private int    jasenNro;
14    private String ala;
15    private int    aloitusvuosi;
16    private int    tuntiaViikossa;
17  
18    private static int seuraavaNro = 1;
19  
20    /**
21     * Alustetaan harrastus.  Toistaiseksi ei tarvitse tehdä mitään
22     */
23    public Harrastus() {  
24        // Vielä ei tarvita mitään
25    }
26  
27    
28    /**
29     * Alustetaan tietyn jäsenen harrastus.  
30     * @param jasenNro jäsenen viitenumero 
31     */
32    public Harrastus(int jasenNro) {  
33      this.jasenNro = jasenNro;
34    }
35  
36    
37    /**
38     * Apumetodi, jolla saadaan täytettyä testiarvot Harrastukselle.
39     * Aloitusvuosi arvotaan, jotta kahdella harrastuksella ei olisi
40     * samoja tietoja.
41     * @param nro viite henkilöön, jonka harrastuksesta on kyse
42     */
43    public void vastaaPitsinNyplays(int nro) {
44       jasenNro = nro;
45       ala = "Pitsin nypläys";
46       aloitusvuosi = Jasen.rand(1900,2000);
47       tuntiaViikossa = Jasen.rand(0,60);
48    }
49    
50    
51    /**
52     * Tulostetaan harrastuksen tiedot
53     * @param out tietovirta johon tulostetaan
54     */
55    public void tulosta(PrintStream out) {
56      out.println(ala + " " + aloitusvuosi + " " + tuntiaViikossa);
57    }
58  
59    
60    /**
61     * Tulostetaan henkilön tiedot
62     * @param os tietovirta johon tulostetaan
63     */
64    public void tulosta(OutputStream os) {
65      tulosta(new PrintStream(os));
66    }
67  
68    /**
69     * Antaa harrastukselle seuraavan rekisterinumeron.
70     * @return harrastuksen uusi tunnus_nro
71     * @example
72     * <pre name="test">
73     *   Harrastus pitsi1 = new Harrastus();
74     *   pitsi1.getTunnusNro() === 0;
75     *   pitsi1.rekisteroi();
76     *   Harrastus pitsi2 = new Harrastus();
77     *   pitsi2.rekisteroi();
78     *   int n1 = pitsi1.getTunnusNro();
79     *   int n2 = pitsi2.getTunnusNro();
80     *   n1 === n2-1;
81     * </pre>
82     */
83    public int  rekisteroi() {
84      tunnusNro = seuraavaNro;
85      seuraavaNro++;
86      return tunnusNro;
87    }
88  
89    
90    /**
91     * Palautetaan harrastuksen oma id
92     * @return harrastuksen id
93     */
94    public int getTunnusNro() { return tunnusNro; }
95    
96    
97    /**
98     * Palautetaan mille jäsenelle harrastus kuuluu
99     * @return jäsenen id
100    */
101   public int getJasenNro() { return jasenNro; }
102 
103   
104   /**
105    * Testiohjelma Harrastukselle.
106    * @param args ei käytössä
107    */
108   public static void main(String[] args) {
109     Harrastus har = new Harrastus();
110     har.vastaaPitsinNyplays(2);
111     har.tulosta(System.out);
112   }
113 
114 }
115 
116 
117