Paradigmata Objektového Programování I
Total Page:16
File Type:pdf, Size:1020Kb
KATEDRA INFORMATIKY PRˇ´IRODOVEDECKˇ A´ FAKULTA UNIVERZITA PALACKEHO´ PARADIGMATA OBJEKTOVÉHO PROGRAMOVÁNÍ I MICHAL KRUPKA VYVOJ´ TOHOTO UCEBNˇ ´IHO TEXTU JE SPOLUFINANCOVAN´ EVROPSKYM´ SOCIALN´ ´IM FONDEM A STATN´ ´IM ROZPOCTEMˇ CESKˇ E´ REPUBLIKY Olomouc 2008 Abstrakt Obsahem textu jsou základy objektově orientovaného programování. C´ı lova´ skupina První část textu je určena studentům všech bakalářských oborů vyučovaných na katedře informatiky Příro- dovědecké fakulty UP Olomouc. Chystaná druhá část textu je určena především studentům bakalářského oboru Informatika. Obsah 1 Úvod . 6 2 Od Scheme ke Common Lispu . 8 2.1 Pozadí . 8 2.2 Terminologie . 8 2.3 Logické hodnoty a prázdný seznam . 9 2.4 Vyhodnocovací proces . 11 3 Common Lisp: základní výbava . 15 3.1 Řízení běhu . 15 3.2 Proměnné a vazby . 16 3.3 Místa . 20 3.4 Funkce . 21 3.5 Logické operace . 24 3.6 Porovnávání . 25 3.7 Čísla . 26 3.8 Páry a seznamy . 27 3.9 Chyby . 29 3.10 Textový výstup . 30 3.11 Typy . 31 3.12 Prostředí . 32 4 Třídy a objekty . 33 4.1 Třídy . 33 4.2 Třídy a instance v Common Lispu . 34 4.3 Inicializace slotů . 40 5 Zapouzdření . 43 5.1 Motivace . 43 5.2 Princip zapouzdření . 47 5.3 Úprava tříd point a circle . 48 5.4 Třída picture . 49 6 Polymorfismus . 53 6.1 Kreslení pomocí knihovny micro-graphics . 53 6.2 Kreslení grafických objektů . 57 6.3 Princip polymorfismu . 63 6.4 Další příklady . 64 7 Dědičnost . 70 7.1 Dědičnost jako nástroj redukující opakování v kódu . 70 7.2 Určení předka při definici třídy . 72 7.3 Přiblížení běžným jazykům . 73 7.4 Hierarchie tříd grafických objektů . 76 7.5 Přepisování metod . 78 7.6 Volání zděděné metody . 80 7.7 Inicializace instancí . 84 7.8 Příklady . 85 8 Příklady . 86 8.1 Symbolické výrazy poprvé . 86 8.2 Zápis a čtení symbolických výrazů . 88 8.3 Symbolické výrazy a dědičnost . 90 8.4 Zpráva simplify a volání metody předka . 94 8.5 Posloupnosti . 96 8.6 Zprávy fyzické úrovně . 97 8.7 Zprávy logické úrovně . 98 8.8 Jednorozměrná pole . 99 8.9 Seznamy . 103 8.10 Posloupnosti: další příklady . 106 9 Události . 107 9.1 Zpětná volání v knihovně micro-graphics . 107 9.2 Jednoduché využití zpětných volání . 108 9.3 Vlastnické vztahy, delegování, události . 110 9.4 Implementace událostí u jednoduchých grafických objektů . 111 9.5 Reakce na změny u jednoduchých objektů . 114 9.6 Klikání myší u jednoduchých objektů . 119 9.7 Reakce na změny u složených objektů . 121 9.8 Klikání myší u složených objektů . 126 9.9 Příklady . 127 A Slovníček . 128 A.1 Základní výrazy . 128 A.2 Odvozené výrazy . 128 A.3 Makra . 128 A.4 Standardní procedury — predikáty ekvivalence . 129 A.5 Standardní procedury — čísla . 129 A.6 Standardní procedury — logické typy . 129 A.7 Standardní procedury — páry a seznamy . 130 A.8 Standardní procedury — symboly . 130 A.9 Standardní procedury — znaky . 130 A.10 Standardní procedury — řetězce . 131 A.11 Standardní procedury — vektory . 131 A.12 Standardní procedury — řízení běhu . 132 A.13 Standardní procedury — eval . ..