Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2
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: Kúlcsszavak: [utasítás ]' megjegyzés Byte, Friend, New, Select, Dim, Sub, If, Try, Private, stb. 3
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, struktúrák, szabványos (standard) modulok (további változókkal, eljárásokkal, függvényekkel), interfészek 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
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
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
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
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: MaxValue, MinValue: a típus legkisebb, illetve legnagyobb értéke. Metódusok: 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
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
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
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
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
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
VB.NET nyelvi elemek - Változók Példák: 14
VB.NET nyelvi elemek - Konstansok Konstans deklarálása: Példák: 15
Operátorok A legfontosabb operátorok: Objektum orientált programozás - Pál László 16
Utasítások IF elágazás Több változata van: Objektum orientált programozás - Pál László Egy elágazás Két elágazás Több elágazás Példa: 17
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
Utasítások Select Case elágazás Példa: 19
Ciklusok FOR NEXT Objektum orientált programozás - Pál László 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
Ciklusok FOR NEXT Példák: Objektum orientált programozás - Pál László 21
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
Ciklusok DO LOOP ciklusok Példák: 23
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
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
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
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
Alprogramok - Példák Függvény Objektum orientált programozás - Pál László 28
Beépített függvények Sztringkezelı függvények: Objektum orientált programozás - Pál László 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 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: 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
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
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
Visual Basic.NET - Összetett típusok Tömbök bejárása: 32
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
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
Visual Basic.NET - Összetett típusok Példa struktúrára: 35
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
Felhasznált szakirodalom Objektum orientált programozás - Pál László 1. Juhász Tibor Kiss Zsolt, Programozási ismeretek, Mőszaki Könyvkiadó, 2012 2. http://msdn.microsoft.com/enus/library/vstudio/dd831853.aspx 3. http://www.tutorialspoint.com/vb.net/ 37