07. Základní pojmy objektového programování (trošička teorie)
Přidal/a Jarda dne October 16 2010 10:11:59
V předchozím úvodním příkladu jsme se seznámili s několika typickými prvky programu v objektovém programování. Nyní se k nim vrátím podrobněji.


Základem veškerého dění v programování ve Visual Basicu je, že na plochu formuláře (který je jedním z ojektů) umístíme jiné objekty (text box, tlačítka atd.). Těmto objektům nastavíme jejich vlastnosti (například co se má dít po stisknutí tlačítka, co máme udělat s údajem v text boxu nebo co do tohoto text boxu napsat atd.) - tedy co který objekt provede při nastavené události – k tomu slouží metody. V následujících odstavcích si vysvětlíme tyto základní pojmy objektového programování.


Objekty

V běžném životě si jako objekt můžeme představit v podstatě jakýkoli předmět. Je to nějaká část skutečného světa, která se nějak jmenuje, má nějaké vlastnost a nějakým způsobem se dají tyto vlastnosti měnit.. Z hlediska programování je objekt část projektu, který má nějaké vlastnosti a způsoby, jak tyto vlastnosti měnit.A samozřejmě se musí nějak měnit. Pravidla pro pojmenování objektů jsem již prozradil – jen pro připomenutí pár příkladů – txtVysledek, frmScitani, cmdVypocitat atd.


Třídy

Podobné objekty lze zařadit do skupin, které nazýváme třídami. Tato třída určuje základní společné vlastnosti objektů a tím zároveň i jejich schopnosti – množinu příkazů (viz dále událostí a metod), na něž jsou objekty z dané třídy schopny reagovat.


Vlastnosti

Každý objekt (i v reálném životě) má určité vlastnosti, které jej charakterizují (bota – velikost, barva, materiál, opotřebení atd.) Některé vlastnosti se dájí měnit, některé nikoliv. Vlastnosti počítačového objektu mohou být několika typů:

- textové – hodnota vlastnosti určena textovým řetězcem (tato vlastnost může být omezení – např. Název objektu, který je určen hned na počátku)

- číselné – hodnota této vlastnosti je určena číselnou hodnotou (např. Délka – může být omezením, lze ji ale programově měnit téměř libovolně)

- boolean – hodnota vlastnosti je určena ze dvou možností – pravda/nepravda (true/false)

- seznam – hodnota vlastnosti je určena seznamem připravených hodnot přicházejících v úvahu (např. barvy aut daného vzorníku)

Ve Visual Basicu můžeme vlastnosti nastavovat v návrhovém režimu v okně vlastností nebo při běhu programu pomocí příkazů programového kódu.
Objekt.Vlastnost= Hodnota
txtVysledek.Text = Val(txtA.Text)


Události

Program ve visualBasicu je řízená událostmi. Reaguje tedy na určité události který se váže k určitému objektu. Každý objekt má definovánu množinu událostí, na kterou dokáže reagovat a ke kterým může dojít. Např. událost Click tlačítka cmdSoucet je naprosto odlišná od události Click tlačítka cmdRozdil. Při stisku tlačítka cmdSoucet dojde k události Click vázané k tomuto tlačítku a k žádné jiné.


Událostní procedura

Část kódu, která se vykoná, když v programu manipulujeme s nějakým objektem – například stiskneme tlačítko, vykoná se událostní procedura Button1_Click


Metody

Jsou to speciální podprogramy, které umožňují změnit vlastnosti objektů (objektu, který metodu vyvolal i ostatních objektů, které s vyvolanou metodou souvisí). Například, pokud máme prodlužovací sňúru s vypínačem a na ni připojený počítač i monitor, tak stiskem vypínače na prodlužovacím přívodu změníme stav přívodu na vypnuto a zároveň změníme i stav připojených zařízení. Musíme tedy vždy požadovat vyvolání metody pouze ve spojení s objektem.
Objekt.Metoda (Hodnota)
ListBox1.Items.Add(„Slovo“)

- přidáme slovo Slovo do seznamu ListBox1


Identifikátory

Veškeré prvky, které se vyskytují v programu, musí být pojmenované – a toto pojmenování nazýváme identifikátory. Identifikator má ve VB určitá omezení – musí obsahovat pouze písmena a číslice a začínat písmenem. V jiných programovacích jazycích mohou být tato omezení jiná.VB nerozlišuje mezi velkými a malými písmeny, tj. identifikátor počet a počet jsou totožné. Typy identifikátorů: klíčová slova (rezervovaná slova označující příkazy jazyka VB), názvy proměnných a konstant, názvy vlastností, názvy metod, názvy procedur a funkcí a názvy událostí.


Rozsah platnosti identifikátorů

Rozsah platnosti inedtifikátorů (definovaných programátorem) je určen místem deklarace – modul=Globální platnost (na celý projekt), deklarační část formuláře=rozsah platnosti na formulář, podprogram=rozsah platnosti pouze v daném podprogramu.


Procedury a funkce

S těmito pojmy jsme se setkali už u jazyky LOGO. Souhrnně se nazývají podprogramy a jejich význam je stejný jako v LOGU. Procedury používáme v případech, kdy chceme nějakou činnost vykonat, a funkce v případě, chceme-li získat nějakou hodnotu (na základě nějakého parametru je vypočítána hodnota.


Příklad – program na dělení, podmínky smysluplnosti dělení


Ovládací prvky nadefinujeme podobně jako v přikladu předchozí kapitoly.
Otevřeme si okno zdrojového kódu View...Code


Na výše uvedené příkladu vidíme použití podmíněného příkazu (podrobnosti později) a také práci s tzv. operátorem a příkazempřiřazení.


Cíl = Výraz C = A / B

txtVysledek.Text = Val(txtA.Text) + Val(txtB.Text)

Výsledek použití zprávového okna (message boxu)


Proměnné

Od chvíle, kdy deklarujeme proměnnou (viz výše – Dim promenna [As datovytyp] – část příkazu v hranatých závorkách není povinná ale je vhodnější sdělit překladači, s jakým datovým typem bude pracovat), je tato proměnná připravena přijmout data. Je určena také svým datovým typem. Datové typy známe již z databází.


Datové typy

Datový typ určuje množinu přípustných hodnot. Rozhodnutí, který datový typ použít, je závislé na nejvyšší možné hodnotě nebo podle přesnosti výpočtu (např. Double je dvojnásobně přesný). Currency je určen zejména pro finanční položky-malý počet desetinných míst, velká čísla v běžném tvaru. Nečíselné typy využíváme k zápisu textových řetězců (textový řetězec je vždy uzavřen do uvozovek), typ Boolean užíváme k ukládání logických hodnot (podmínky, cykly).



Pole

Je to skupina položek stejného typu, které navenek vystupují pod jediným jménem. K jednotlivým položkám přistupujeme pomocí indexů (jednoho nebo více), které určují polohu prvku v poli, index dolni To horni jsou celá čísla určující rozsah indexů.


Dim promenna (dolni To horni) [As datovytyp]



Deklarace globálních proměnných

Předchozí proměnné byly tzv. lokální. Jejich existence je omezena jen na podprogram, případně formulář, ve kterém byly deklarovány. Proměnné, které jsou platné v celém projektu definujeme příkazem Global:


Global promenna [As datovytyp]


Konstanty

Zatímco hodnota proměnné se v průběhu programu mění, konstanta zůstává stejná. Příklad zavedení konstanty pro číslo pí.


Const konst=hodnota

Const Pi=3.141592


Úkoly:

1.Zkuste naprogramovat jednoduchou kalkulačku