v tejto casti je implementacia triedy Hodiny,
ktora sluzi ako zaklad pre
triedu Budik. Budik ma na rozdiel od
klasickych hodin, ktore dokazu len
tikat, aj pamet, kde je ulozeny cas, kedy nas ma zobudit. Okrem toho po
kazdom 'tiku' kontroluje, ci je cas zazvonit.
Trieda Budik len rozsiruje triedu
Hodiny o informacie
potrebne na nastavenie zvonceka (int ahod, amin, asek;)
a prepisania metody
Tick(), kde vyuzijeme kod z triedy Hodiny.
// POZOR: TOTO JE APLIKACIA (nie applet) // je to aplikacia, pretoze som nechcel, aby tu bol aj // kod potrebny na 'udrzbu' appletu, tzn. volania metod // , ktore nas momentalne vobec nezaujimaju // potrebujem standardne triedy pre vypis textu na obrazovku import java.io.*; // definicia triedy Hodiny; // nie su to skutocne hodiny, jeden "tik" netrva jednu sekundu, // no a co, o to vobec nejde class Hodiny { int hod, // hodiny min, // minuty sek; // sekundy // konstruktor bez parametrov (len tak ako demo) public Hodiny() { hod=0; min=0; sek=0; } // konstruktor s parametrami (tak toto potrebujem) public Hodiny(int h, int m, int s) { hod=h; min=m; sek=s; } // vypis casu public int get_hod() { return hod; } // klasika ... public int get_min() { return min; } // d e public int get_sek() { return sek; } // t o // reset (ukazka "normalnej" metody) public void reset() { hod=0; min=0; sek=0; // ako ked nam vypnu prud ... } // destruktor ;len tak, aby sme videli, // ze aj take nieco existuje, pri tejto triede // nie je potrebny protected void finalize() { hod=0; min=0; sek=0; } // takto nam biju hodiny public void Tick() { sek++; if ( sek==60 ) { sek=0; min++; if ( min==60 ) { min=0; hod = ++hod % 24; // nulujem hod. ak je uz novy den } } } } // class Hodiny // moj budik, ktory kazde rano z celeho srdca nenavidim // ja ho volam ZufalyPipak class Budik extends Hodiny { int ahod, // alarm hod. amin, // alarm min. asek; // alarm sek.; cas kedy ma zazvonit // implicitny konstruktor public Budik() { super(); // tu volam konstruktor predka! ahod=0; amin=0; asek=0; } // (znovu) konstruktor public Budik(int h, int m, int s, int ah, int am, int as) { super(h,m,s); // volam konstruktor predka s parametrami ahod=ah; amin=am; asek=as; } public void Tick() { super.Tick(); // urobim jeden "tik"; vyuzijem existujuci kod if ( hod==ahod && min==amin && sek==asek ) { for (int j=0; j<512; j++) System.out.print("\rCrrrrrrrrrrrrrrrrrrrn."); System.out.print("\r "); } } } // Budik // hlavna trieda class Cas { public static void main(String argv[]) { // vytvorim si budik Budik budicek = new Budik(22,00,00, 06,30,00);// je 22:00 a o // 6:30 vstavam :-( while ( true ) { budicek.Tick(); // tik-tak-tik-tak ... hodiny bezia System.out.print(budicek.get_hod()); System.out.print(":"); System.out.print(budicek.get_min()); System.out.print(":"); System.out.print(budicek.get_sek()); System.out.print(" \r"); } } } // Cas