|
Začátečník |
Pokročilý |
Profesionál |
|||||
|
|
|
||||||
Úvod
do světa .NET /4. díl Moderní technologie
vývoje softwaru |
||||||||
|
|
Budete potřebovat
přibližně 30 minut |
|
Operační systém
použitý v příspěvku: Windows 2000 Vývojové nástroje: Visual Basic .NET |
||||
|
Vážení čtenáři,
v dnešním dílu seriálu začněme s vysvětlováním pojmu proměnná. Dozvíte se, na co vlastně proměnné slouží, jak se deklarují a inicializují. Také bude ozřejměn pojem obor proměnné. Přeji příjemné počtení.
Obsah |
Pojem proměnná
Tak, jak je základní stavební jednotkou aplikace stylu .NET forma zvaná assembly, tak ve světě programového kódu je základní jednotkou pro ukládání hodnot proměnná. Do proměnné lze umísťovat různé hodnoty, jako například celá či desetinná čísla, text, datum atd. Proměnné jsou někdy také označovány jako kontejnery, aby se ještě více zvýraznila jejich schopnost uchovávat jistou hodnotu (obr. 1).
Obr. 1 – Vizuální přiblížení pojmu proměnná
Pokud byste se chtěli podívat na proměnné z techničtějšího hlediska, zjistili byste, že každá proměnná alokuje jisté místo v paměti počítače (proměnná má tedy svůj rozsah, který je zpravidla měřen v bitech). Právě toto místo v paměti je schopno uchovat hodnotu, kterou má proměnná „na starosti“. Aby ovšem bylo možné do proměnné umístit jakoukoliv hodnotu, je potřebné ji nejdříve deklarovat.
Deklarace proměnné
Na deklarování proměnných slouží ve VB .NET příkaz Dim. Obecný zápis procesu deklarace proměnné je:
Dim jméno_proměnné As datový_typ_proměnné
Pokud byste tedy chtěli deklarovat proměnnou číslo, která by byla datového typu Integer, použili byste tento zápis programového kódu:
Dim
číslo As Integer
Jste-li začínajícími programátory, může se vám mnoho věcí na způsobu deklarace proměnné zdát nejasných, a proto si dovolím tento proces rozebrat poněkud podrobněji. Snad nejdůležitější informací je, že neexistuje nic jako „ryzí proměnná“, vždy se můžete střetnout jenom s proměnnou, které reprezentuje jistý datový typ. Datový typ si můžete představit jako charakteristiku, která blíže určuje použití proměnné. Ve VB .NET se koneckonců můžete střetnout s poměrně velkým počtem rozličných datových typů (jejich charakteristikou se budeme zabývat v příštím dílu seriálu). Příkaz Dim zabezpečí rezervaci místa v paměti pro vytvořenou proměnnou (přitom samozřejmé dbá na to, aby byla velikost rezervovaného místa v souladu s rozsahem použitého datového typu proměnné). V zápisu je také důležité klíčové slovo As, za kterým následuje specifikace zvoleného datového typu. Celý zápis ukončuje název datového typu, v našem případě je to typ Integer, který je vhodný pro ukládání celých čísel.
Použijete-li pouze uvedený zápis s příkazem Dim, je pro proměnnou číslo jenom vyhrazeno místo v paměti počítače, ale samotná proměnná neobsahuje žádnou hodnotu. Aby bylo možné umístit do proměnné hodnotu, je zapotřebí proměnnou inicializovat. Jak na to si ukážeme v další kapitole.
Inicializace proměnné
Inicializace proměnné se uskutečňuje pomocí takzvaného přiřazovacího příkazu.
|
V této souvislosti bychom si také měli ozřejmit pojem příkaz.
Příkazem se obyčejně rozumí jeden řádek programového kódu. Příkazem může být
ovšem také klíčové slovo programovacího jazyka, po použití kterého se
uskuteční nějaká operace. Nakonec příkazem může být chápána i programová
konstrukce typu přiřaďování, kdy dochází k umístění hodnoty do proměnné.
|
Přiřazovací příkaz obecně přiřazuje jistou hodnotu do proměnné. Řečeno jinými slovy, jenom pomocí přiřazovacího příkazu můžete do proměnné uložit nějakou hodnotu. Jak ovšem takový příkaz vypadá? Asi takto:
jméno_proměnné = hodnota, kterou chceme do proměnné přiřadit
Přiřazovací příkaz dělá přesně to, co říká jeho název, tedy přiřazuje „něco někam“. Jaký je cíl přiřazení? No přece proměnná. A co do proměnné přiřazujeme? Libovolnou hodnotu v závislosti od rozsahu příslušného datového typu proměnné. Ještě prostěji, obsah pravé strany příkazu je „vložen“ do proměnné, název které se nachází na levé straně přiřazovacího příkazu.
Budeme-li chtít navázat na předchozí deklaraci proměnné číslo, můžeme použít tento zápis programového kódu:
číslo = 1000
Tímto způsobem naznačíme VB .NET, aby do proměnné umístil hodnotu (číslo) 1000.
Porovnání mezi deklarací a inicializací proměnné znázorňuje obr. 2.
Obr. 2 – Rozdíl mezi deklarací a následnou inicializací
proměnné
Pokud ji v budoucnu nezměníte, proměnná číslo bude stále obsahovat tuto hodnotu.
Abyste se přesvědčili, že proměnná opravdu obsahuje zadanou číselní hodnotu,
můžete použít metodu Show třídy MessageBox v následujícím tvaru:
MessageBox.Show(číslo)
Metodě Show je v tomto případě jako vstupní
hodnota (přesněji jako parametr) předána proměnná číslo, a protože metoda zobrazuje
v dialogovém okně hodnotu svého parametru, udělá tak i v našem případě
a zobrazí okno s hodnotou 1000. Dobrá, přesvědčili jste se, že proměnná
opravdu obsahuje vloženou hodnotu. Pokud byste chtěli změnit hodnotu proměnné
třeba na rovný milion, opět použijete přiřazovací příkaz, jenom s novým
určením hodnoty:
číslo = 1000000
Takto je
předchozí obsah proměnné číslo smazán a nahrazen novou hodnotou. Demonstrovaným postupem můžete měnit
hodnotu proměnné, no nesmíte v žádném případě zapomenout na rozsah
proměnné. Ten totiž určuje interval hodnot, které můžete do proměnné uložit (v
případě datového typu Integer je tento interval <-2 147 483 648, 2 147 483 647>)
|
Datový typ Integer je uchováván jako 32bitová, resp. 4bajtová
hodnota. Jde o datový typ, jenž poskytuje nejefektivnější výkon při celočíselných
operacích na dvaatřicetibitových procesorech. |
Jestliže
byste do proměnné číslo
přiřadili hodnotu mimo povolený interval, VB .NET by vygeneroval chybové
hlášení.
V souvislosti
s uchováváním hodnot pomocí proměnné by vás ovšem mohla napadnout otázka, dokdy ve skutečnosti proměnná bude přiřazenou
numerickou hodnotu obsahovat. Aby bylo možné vyřešit toto dilema, musíme si
vysvětlit další důležitý pojem, kterým je obor proměnné.
Obor proměnné
Oborem
proměnné rozumíme časový interval, v rámci kterého proměnná udržuje svou
hodnotu. Umístíte-li na formulář projektu tlačítko a poklepete na něj, otevře
se editor pro zápis kódu. V prostředí editoru můžete zapsat kód třeba pro
událostní proceduru Click
tlačítka. Kdybychom v této událostní proceduře deklarovali proměnnou číslo a přiřadili do této proměnné
numerickou hodnotu, proměnná by obsahovala tuto hodnotu jenom dokud by byl
vykonáván kód dané procedury. Když se provádění událostní procedury ukončí,
zlikvidují se všechny proměnné, které byly v této proceduře deklarovány (a
pochopitelně dojde i k destrukci hodnot, které tyto proměnné obsahovaly).
Předveďme si tuto situaci prakticky na ukázce programového kódu obsluhy
události Click
tlačítka Button1:
Private
Sub Button1_Click(ByVal
sender As System.Object, _
ByVal
e As System.EventArgs) Handles
Button1.Click
Dim
číslo As Integer
číslo = 1000
MessageBox.Show(číslo)
End
Sub
Uvnitř
procedury typu Sub je deklarována proměnná číslo typu Integer. Proměnná je také inicializována na
hodnotu 1000. Další příkaz zobrazuje dialogové okno s hodnotou. Tím je
úkol událostní procedury splněn a procedura je ukončena. V té chvíli
dochází k likvidaci proměnné číslo a také „mizí“ hodnota, která byla do
proměnné číslo
uložena. Proto říkáme, že oborem proměnné číslo je událostní procedura Click tlačítka Button1.
Proměnná
může mít i daleko širší obor. Oborem proměnné může být celý formulář (resp.
celá třída formuláře) nebo také celý projekt VB .NET (jestliže je proměnná
deklarována v doprovodném modulu).
|
Modulem se rozumí speciální soubor, do kterého se ukládají tzv.
veřejné proměnné, funkce a další platné programové konstrukce. |
Zkusme si první
z těchto variant ukázat na praktickém příkladu.
Příklad: Formulář (třída formuláře) jako obor proměnné
Private Sub
Button1_Click(ByVal sender As System.Object, _
ByVal e As
System.EventArgs) Handles Button1.Click
číslo
= 1000
MessageBox.Show(číslo)
End Sub
Private Sub
Button2_Click(ByVal sender As System.Object, _
ByVal e As
System.EventArgs) Handles Button2.Click
MessageBox.Show(číslo)
End Sub
Public Class Form1
Inherits
System.Windows.Forms.Form
a deklarujte proměnnou číslo zápisem:
Dim číslo As Integer
Public Class Form1
Inherits System.Windows.Forms.Form
Dim číslo As Integer
"Windows Form Designer generated code"
Private Sub
Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles
Button1.Click
číslo
= 1000
MessageBox.Show(číslo)
End Sub
Private Sub
Button2_Click(ByVal sender As System.Object, _
ByVal e As
System.EventArgs) Handles Button2.Click
MessageBox.Show(číslo)
End Sub
End Class
Když pustíte
aplikaci a klepněte na první tlačítko, objeví se dialogové okno, který bude
ukazovat numerickou hodnotu (1000) proměnné číslo. Po ukončení událostní procedury Button1_Click ovšem nedojde k likvidaci
proměnné číslo,
protože oborem této proměnné je v tomto případě celý formulář a ne jenom
procedura. Klepnete-li na druhé tlačítko, zobrazí se aktuální stav proměnné číslo, tedy opět numerická hodnota 1000. Ptáte
se, kdy je v tomto případě proměnná zlikvidována? K destrukci
proměnné dochází ve chvíli likvidace formuláře (resp. odstranění formuláře
z paměti počítače).
Ján Hanák