Hah, onhan tämä toki matkittu, mutta löysin eräiltä sivuilta luokkaesimerkkejä tällä laululla toteutettuna (PHP-toteutusta ei siis löytynyt).
Nyt myöhemmin katsottuna olisi tämän voinut kirjoittaa paljon selvemminkin, mutta skriptin lienee tarkoitus vain matkia näitä aiempia esimerkkejä.
edit 4.12.2007: kuvaus uusiksi & koodiin jotain viilausta
http://www.miiro.com/onomatopoeia.php
<?php echo "<h1>Kontra: Onomatopoeettinen alkoholiliike</h1>"; // ulostetaan otsikko // En kommentoi jotain juttuja, jos on samaa peräkkäin class kana { // luokka (tai luokan nimi) on siis kana function sanoo () { // kana-uokan sisäinen funktio sanoo echo "kot kot kot"; // ja mitä tehdään kun kutsutaan funktiota } // lopetetaan funktio... function kuinkasanoo () { // toinen luokan sisäinen funktio jonka nimi on kuinkasanoo echo "kapana"; } } class karhu { // En kommentoi muita funktioita samanlaisuuden takia, jos ei tullut jo selväksi function sanoo () { echo "mur mur mur"; } function kuinkasanoo () { echo "KARHU!"; } } class gorilla { function sanoo () { echo "yöäärghyöääää"; } function kuinkasanoo () { echo "carillo"; } } class kirahvi { function sanoo () { echo "öri öri öri"; } function kuinkasanoo () { echo "kahvi - likööri"; } } class kiiski { function sanoo () { echo "(plop) (plop) (plop) (plop)"; } function kuinkasanoo () { echo "whisky"; } } class siittio { function sanoo () { echo "blöbäGmm"; } function kuinkasanoo () { echo "i love you!"; } } // Eka säkeistö tjsp. - KANA $kana = new kana(); // luokka kana on $kana for ($i = 0; $i < 2; $i++) { // for-luuppi echo "kana sanoo "; // sanotaan jotain $kana->sanoo(); // $kanasta funktio sanoo echo ", "; // pilkku! $kana->sanoo(); echo "<br>"; } for ($i = 0; $i < 3; $i++) { echo "kuinka kana sanoo"; if ($i == 2) { // if-lauseke echo " "; // tulostetaan taas... $kana->kuinkasanoo(); // $kanasta funktio kuinkasanoo echo "?<br>"; } else { echo ", "; } } echo "kana sanoo "; // Joo. $kana->sanoo(); echo ", "; // pilkku... $kana->sanoo(); echo "<br><br>"; // KARHU - Ei tämäkään kommentoitu... $karhu = new karhu(); for ($i = 0; $i < 2; $i++) { echo "karhu sanoo "; $karhu->sanoo(); echo ", "; $karhu->sanoo(); echo "<br>"; } for ($i = 0; $i < 3; $i++) { echo "kuinka karhu sanoo"; if ($i == 2) { echo " "; $karhu->kuinkasanoo(); echo "?<br>"; } else { echo ", "; } } echo "karhu sanoo "; $karhu->sanoo(); echo ", "; $karhu->sanoo(); echo "<br><br>"; // GORILLA $gorilla = new gorilla(); for ($i = 0; $i < 2; $i++) { echo "gorilla sanoo "; $gorilla->sanoo(); echo "<br>"; } for ($i = 0; $i < 3; $i++) { echo "kuinka gorilla sanoo"; if ($i == 2) { echo " "; $gorilla->kuinkasanoo(); echo "?<br>"; } else { echo ", "; } } echo "gorilla sanoo "; $gorilla->sanoo(); echo " bungolo!<br><br>"; // Echotaan tietoja. echo "ketulla on krapula, niin myös madolla, kaikki ne voit tavata Alkon jonossa<br><br>"; // KIRAHVI $kirahvi = new kirahvi(); for ($i = 0; $i < 2; $i++) { echo "kirahvi sanoo "; $kirahvi->sanoo(); echo ", "; $kirahvi->sanoo(); echo "<br>"; } for ($i = 0; $i < 3; $i++) { echo "kuinka kirahvi sanoo"; if ($i == 2) { echo " "; $kirahvi->kuinkasanoo(); echo "?<br>"; } else { echo ", "; } } echo "kirahvi sanoo "; $kirahvi->sanoo(); echo "<br><br>"; // Echotaan, keitä emme voi tavata Alkon jonossa :'( echo "siili käyttää aineita, niin myös etana, heitä et voi tavata Alkon jonossa<br><br>"; // KIISKI $kiiski = new kiiski(); for ($i = 0; $i < 2; $i++) { echo "kiiski sanoo "; $kiiski->sanoo(); echo "<br>"; } for ($i = 0; $i < 3; $i++) { echo "kuinka kiiski sanoo"; if ($i == 2) { echo " "; $kiiski->kuinkasanoo(); echo "?<br>"; } else { echo ", "; } } echo "kiiski sanoo "; $kiiski->sanoo(); echo "<br><br>"; // SIITTIÖ $siittio = new siittio(); for ($i = 0; $i < 2; $i++) { echo "siittiö sanoo "; $siittio->sanoo(); echo ", "; $siittio->sanoo(); echo "<br>"; } for ($i = 0; $i < 3; $i++) { echo "kuinka siittiö sanoo"; if ($i == 2) { echo " "; $siittio->kuinkasanoo(); echo "?<br>"; } else { echo ", "; } } for ($i = 0; $i < 4; $i++) { echo "<br>"; $siittio->sanoo(); } ?>
Kommentointi on kyllä ihan hakusessa :) Ei itsestäänselvyyksiä tarvitse kommentoida. Kommentoinnin tulisi vastata ennemminkin kysymykseen miksi tehdään kuin mitä tehdään.
Muuten kyllä hauska vinkki :) Tosin olisin ehkä laittanut koko laulun toiminnallisuuksineen ennemmin yhteen luokkaan.
Totta, mutta tämän vinkin kuuluukin olla mahdollisimman selvä esimerkki luokkien käytöstä.
ajv: ja btw, jos katsot tätä koodia muille kielille, niin ne on toteutettu aika samalla tavalla...äh, nyt kyllä tein jonkun taivutusvirheen tjtn.
Aihe on jo aika vanha, joten et voi enää vastata siihen.