// demo07.ck // // Készítette: // Kaluzsa Péter - ELTE - 2012/2013-2 // // osztályok // // új osztály definiálása // a demo07.ck forráson belül publikus, csak itt lehet használni class Demo { // objektum szintű adattagok (csak publikus) int frek; float gain; // osztály szintű adattagok (csak primitív lehet! - még) static dur t; // pre-konstruktor // minden az osztály törzsébe írt kód 220 => frek; // member függvények fun void setOsc(int f, float g) { f => frek; g => gain; } // osztályszintű függvény fun static void setDur(dur d) { d => t; } // üres függvény -> leszármazottban kerül implementálásra fun void play() { } } // osztályszinű műveletek 1000::ms => Demo.t; <<>>; Demo.setDur(500::ms); // Demo osztály példányosítása Demo demo; // adattagok felülírása 100 => demo.frek; 1. => demo.gain; 1000::ms => demo.t; // adattagok olvasása <<>>; <<>>; <<>>; // függvényhívások demo.setOsc(220, 0.5); // öröklődés class sinOscDemo extends Demo { // új adattagok SinOsc s; // pre-konstruktor .5 => gain; // függvény felüldefiniálás fun void play() { frek => s.freq; gain => s.gain; s => dac; t => now; s =< dac; } } sinOscDemo sod; sod.play(); 500::ms => Demo.t; sod.setOsc(330, .4); sod.play(); // polimorfizmus Demo @ demoTomb[2]; sod.setOsc(220, .4); demo @=> demoTomb[0]; sod @=> demoTomb[1]; for (int i; i < demoTomb.cap(); ++i) { demoTomb[i].play(); }