Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
Objektum orientált programozás - Pál László
2. ELİADÁS Visual Basic bevezetı Visual Basic .NET nyelvi elemek
2
Objektum orientált programozás - Pál László
Visual Basic .NET programozási nyelv
Nyelvi elemek: Általában
minden utasítást külön sorba írunk Szükség esetén egy sorba több utasítás írható, kettısponttal elválasztva utasítás1 : utasítás2 : … A
forráskódban aposztrófjel (') után megjegyzés következhet:
[utasítás ]' megjegyzés Kúlcsszavak:
Byte, Friend, New, Select, Dim, Sub, If, Try, Private, stb.
3
Objektum orientált programozás - Pál László
Visual Basic .NET programozási nyelv
Programok szerkezete: A
Visual Basic programok forráskódja kódfájlokban helyezkedik el. Minden kódfájl programmodulokat tartalmaz
A Visual Basic (program)moduljai: osztályok,
(további interfészek
struktúrák, szabványos (standard) modulok változókkal, eljárásokkal, függvényekkel),
Egy kódfájlban több modult is definiálhatunk. A program végrehajtható utasításai csak modulokon belüli függvényekben és eljárásokban helyezkedhetnek el! 4
Objektum orientált programozás - Pál László
Visual Basic .NET programozási nyelv
A kódfájl szerkezete: Fájlszintő
elemek
[Option utasítások], [Imports utasítások], projektszintő elemek
Projektszíntő
elemek:
Osztályok, interfészek, struktúrák, szabványos modulok, felsorolások. Egy kódfájlban több projektszintő elemet is definiálhatunk
Modulszintő
elemek
Felsorolások, struktúrák, konstansok, változók deklarációi, függvények, eljárások definíciói.
Alprogramszintő
elemek
Változók, utasítások 5
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek – Azonosítók
Konstansok, változók, struktúrák, felsorolások, eljárások, függvények, objektumok, osztályok, interfészek azonosítói Csak Unicode betőt, számjegyet vagy aláhúzásjelet tartalmazhatnak Az azonosítók ékezetes karaktereket is tartalmazhatnak Nem egyezhetnek meg valamely foglalt kulcsszóval A Visual Basic az azonosítókban nem különbözteti meg a kisbetőket a nagybetőktıl 6
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek – Elemi típusok
A Visual Basicben az elemi típusok struktúrák (a sztring pedig objektum), így tulajdonságokkal és metódusokkal rendelkeznek
Karaktersorozat literál: "karaktersorozat“ Dátum/idı literál:
7
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek – Elemi típusok
A numerikus típusok (struktúrák) tulajdonságai és metódusai: A ToString metódus kivételével megosztott tulajdonságok és megosztott metódusok Hivatkozás a megosztott tagoknál: típusnév.tulajdonságnév, típusnév.metódusnév(argumentumok), például: Integer.MaxValue Tulajdonságok:
Metódusok:
MaxValue, MinValue: a típus legkisebb, illetve legnagyobb értéke. ToString([formátumkód]): sztringgé alakítja a numerikus értéket.
A Char típus (struktúra) megosztott metódusai
Hivatkozás: Char.metódusnév(karakter) IsControl(c), IsDigit(c), IsLetter(c), IsLetterOrDigit(c), IsLower(c): Vezérlıkarakter, számjegy, bető, bető vagy számjegy, kisbető ToLower(c), ToUpper(c): konverzió kisbetővé, nagybetővé. 8
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek – Elemi típusok
A String típus: A
sztringek objektumok, karakterek sorozatát tartalmazzák (legfeljebb 2 milliárd karakter lehet) sztring-literált idézıjelek közé zárjuk
sztringváltozó = "Ez egy sztring”
Az
üres sztringet két idézıjel jelöli: "„ A sztringobjektumot létrehozhatjuk a New operátorral, illetve a kezdıérték megadásával: Példák:
9
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek – Elemi típusok
A String típus: A
kezdıérték megadása után a sztring már nem módosítható A módosítást végzı mőveletek valójában egy új sztringobjektumot hoznak létre a módosított tartalommal A sztring karaktereit 0-tól kezdve indexeljük A sztring egy karakterére a Chars(indexkifejezés) csak olvasható tulajdonsággal hivatkozhatunk:
10
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek – Elemi típusok
A sztringobjektum tulajdonságai és metódusai: Hívatkozás:
sztringváltozónév.tulajdonságnév, sztringváltozónév.metódusnév(argumentumok). Length: A sztring hossza. Contains(sztring): True, ha a változó tartalmazza a sztring-et. Insert(kezdıindex, sztring): a sztring-et beilleszti a kezdıindex-tıl kezdve. ToLower(), ToUpper(): kisbetőssé, illetve nagybetőssé alakítja a sztringet
11
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek - Változók
Változó deklarálása:
Hozzáférési mód, Shared, Shadows, Static megjelölés esetén elhagyható a Dim kulcsszó Automatikus kezdıérték:
12
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek - Változók
A típust a változónév mögé írt típusazonosító karakterekkel is megadhatjuk, például Dim X As Integer helyett: Dim X% Típusazonosító karakterek:
13
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek - Változók
Példák:
14
Objektum orientált programozás - Pál László
VB .NET nyelvi elemek - Konstansok
Konstans deklarálása:
Példák:
15
Objektum orientált programozás - Pál László
Operátorok
A legfontosabb operátorok:
16
Objektum orientált programozás - Pál László
Utasítások – IF elágazás
Több változata van: Egy elágazás
Két elágazás
Több elágazás
Példa:
17
Objektum orientált programozás - Pál László
Utasítások – Select Case elágazás
Túl sok elágazás esetén használjuk •A kifejezés numerikus vagy karakterlánc kell legyen •A kifejezéslista lehet: •Egy adott érték •Értékek felsorolva •Zárt intervallum: pld. case 10 to 20 •Relációnak megfelelı érték: •például: case Is <= 20
Az elsı találathoz tartozó utasítások végrehajtása után kilép a Case szerkezetbıl 18
Objektum orientált programozás - Pál László
Utasítások – Select Case elágazás
Példa:
19
Objektum orientált programozás - Pál László
Ciklusok – FOR…NEXT
As típus: ciklusra nézve lokális ciklusváltozó deklarálása (elhagyható) A lépésköz (Step) elhagyható Exit For: kilép a ciklusból Continue For: a Next-nél folytatja a ciklust
20
Objektum orientált programozás - Pál László
Ciklusok – FOR…NEXT
Példák:
21
Objektum orientált programozás - Pál László
Ciklusok – DO…LOOP ciklusok
Elıltesztelı feltételes ciklus
Hátultesztelı feltételes ciklus
Megjegyzések: While: ismétlési feltétel Until: kilépési feltétel Exit Do: kilép a ciklusból Continue Do: a Loop-nál folytatja a ciklust
22
Objektum orientált programozás - Pál László
Ciklusok – DO…LOOP ciklusok
Példák:
23
Objektum orientált programozás - Pál László
Alprogramok
Alprogramoknak tekintjük az eljárásokat és a függvényeket. Minden végrehajtható utasításnak alprogramban kell elhelyezkednie. Eljárások:
A Sub utasítás csak modulszinten szerepelhet a programban, ezért az eljárások nem ágyazhatók egymásba
Eljárások hívása: 24
Objektum orientált programozás - Pál László
Alprogramok – Eseménykezelı eljárások
Szerkezet:
Az objektumnév objektumon létrejött eseménynév eseményt kezeli Az eljárásnév szokás szerint (de nem kötelezıen): objektumnév_eseménynév Paraméterek:
sender: az eseményhez kapcsolódó objektum e: eseményargumentum-objektum (hivatkozhatunk rá az eljárásban)
Egy eljáráshoz több esemény is megadható (a Handles után)
25
Objektum orientált programozás - Pál László
Alprogramok - Függvények
Függvények definíciója:
A visszatérési értéket a Return kifejezés vagy függvénynév = kifejezés utasítással is megadhatjuk Alapértelmezés szerint Public hozzáférésőek A függvények eljárásként is hívhatók. Ebben az esetben figyelmen kívül marad a visszatérési érték.
26
Objektum orientált programozás - Pál László
Alprogramok - Paraméterlista
A paraméterlista egyetlen paraméterbıl vagy egymástól vesszıvel elválasztott paraméterekbıl áll Egy paraméter szintaxisa:
A paraméterek az alprogramok lokális változóinak számítanak A ByVal (alapértelmezett) érték szerinti, a ByRef cím szerinti paraméterátadást jelöl Tömb átadásánál az indexek jelölése nélkül tegyük ki a zárójelet: tömbnév(). 27
Objektum orientált programozás - Pál László
Alprogramok - Példák Függvény
28
Objektum orientált programozás - Pál László
Beépített függvények
Sztringkezelı függvények:
Karakterkódok és karakterek:
Asc("karakter"), AscW("karakter"), Chr(kód), ChrW(kód): A karakter ANSI-kódját, illetve Unicode-ját adja vissza.
Típuskonverziós függvények:
Len(s), Left(s, db), Right(s, db), Mid(s, n, db): a sztring hossza; balról, jobbról, illetve a megadott helytıl kezdve a megadott számú karakter
CBol, CByte, CChar, CDate, CDbl, CDec, CInt, CLng, CSng, CStr: Argumentum: a konvertálandó érték. Az eredmény típusa megfelel a függvénynévben szereplı típusnak
Konvertálás numerikus értékre:
Val(sztringkifejezés): a sztring elejét numerikus értékké konvertálja
29
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Tömbök: A tömbök objektumok és hivatkozás típusú változó mutat rájuk Tömb deklarálása:
Maxindex: az index legnagyobb értéke A tömbelemek indexelése mindig 0-val kezdıdik
Az
i-edik dimenzió maximális indexe tömbnév.GetUpperBound(i)
Hivatkozás a tömb elemeire: tömbnév(indexkifejezés[, …])
30
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Példa tömbökre:
Kezdıértékadás egy és több dimenzió esetén (type inference)
31
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Tömbök bejárása:
32
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Struktúrák (rekordok): A
struktúrát projekt- vagy modulszinten kell definiálni A definíció szintaxisa:
Mezıdeklarációk:
Const, Dim, Enum utasítások Metódusdeklarációk: Sub … End Sub, Function … End Function, Property ... End Property
33
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Struktúrák (rekordok): A
struktúra-típusú változók deklarálása:
A
struktúra tagjaira (mezık, metódusok) a struktúra típusú változó nevével minısítve hivatkozunk:
A
struktúra típusú változók érték-típusúak A struktúráknál nincsen öröklıdés A struktúrákban tulajdonságokat is definiálhatunk
34
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Példa struktúrára:
35
Objektum orientált programozás - Pál László
Visual Basic .NET - Összetett típusok
Példa struktúrára (folytatás):
Struktúra deklarálása és a két eljárás meghívása a struktúra változóra
36
Objektum orientált programozás - Pál László
Felhasznált szakirodalom 1.
2.
3.
Juhász Tibor – Kiss Zsolt, Programozási ismeretek, Mőszaki Könyvkiadó, 2012 http://msdn.microsoft.com/enus/library/vstudio/dd831853.aspx http://www.tutorialspoint.com/vb.net/
37