objektum orientált programozás visual basicben
DESCRIPTION
Objektum Orientált Programozás Visual Basicben. Object – egy dolog, tárgy, „valami” C om m an d button, text box, stb. J ellemzők Propert i es – tulajdonságok, adatok, változók Caption, text, listindex Viselkedés Method – cselekvés, akció, eljárások, függvények - PowerPoint PPT PresentationTRANSCRIPT
Objektum Orientált
Programozás
Visual Basicben
2
Objektumok
• Object – egy dolog, tárgy, „valami”– Command button, text box, stb.
• Jellemzők – Properties – tulajdonságok, adatok, változók
• Caption, text, listindex
• Viselkedés– Method – cselekvés, akció, eljárások, függvények
• Clear, movenext, additem
– Events – az objektum válaszai a felhasználó cselekvésére vagy más eseményre (automatikusan kiváltódó metódusok)
• Click, got focus, activate
3
Osztály modul
• Új objektum típusokat, azaz osztályokat az osztály modulban készíthetünk
• Project, Add Class Module– "C" prefixum használatos
• Az osztály modulban fogjuk definiálni a– Properties– Methods– Events
4
Osztályok és példányok
• Az eszköztár elemei osztályokat reprezentálnak• Valójában az osztályok egy példányát adjuk a
programunkhoz, amikor a tool box-ból választunk– Pl. minden textbox a formon a textbox osztály egy
példánya
• Használd az Object Browser (F2) hogy lásd az osztályokat és a hozzájuk tartozó tulajdonságokat (Properties), metódusokat (Methods) és eseményeket (Events)
• Vegyük észre, hogy az osztály azonos szerepet tölt be, mint a típus, az objektum pedig mint a változó– Text1 pl. szövegdoboz típusú „változó”
5
Objektum Orientált Terminológia
• Encapsulation (Egybezártság)– A tulajdonságok és a metódusok egységbe
vannak zárva– Az objektummal csak azt tudjuk megtenni, amit
az objektum tud (kérni lehet, manipulálni nem)– Az adatait nem láthatjuk közvetlenül
6
Objektum Orientált Terminológia
• Polymorphism (Többalakúság)– Különböző osztályok ugyanolyan névvel
tartalmazhatnak komponenseket, de ezek különbözhetnek egymástól
– A programozók az objektum vagy a végrehajtás pontos ismerete nélkül tudnak kérni cselekvéseket az objektumoktól
– Pl. Debug.Print, Printer.Print
7
Objektum Orientált Terminológia
• Inheritance (Öröklődés)– Létező osztályokból származtathatóak új
osztályok– VB6 ezt nem tudja…. Tehát nem „igazi” OOP
(Object Oriented Programming)– A VB.Net már igen (2001)
8
Objektum Orientált Terminológia
• Reusability (Újrafelhasználhatóság)– Az öröklődés hátsószándéka– VB nem teljesen engedi, de:
• Delegáció ÉS
• Superclasses-olyan osztályok, melyek osztott kódjait elérhetjük
9
Objektum Orientált Terminológia
• Jellemzők– Tulajdonságokként jelenik meg– A tulajdonságokat változókkal adjuk meg az
osztálymodulban
• Viselkedés– Metódusokként jelenik meg– A metódusokat eljárásokkal és függvényekkel adjuk
meg az osztálymodulban
10
Új osztály létrehozása
• Project, Add Class Module
11
Az osztály tulajdonságai
• A Class Module-n belül a General Declarations-ban adjuk meg
• Ne használjuk a Public módosítót, sértjük vele az encapsulation elvet – (minden objektum felelőséggel kell hogy
tartozzon a saját adatai tekintetében)
Private tulajdonságnév as típus
12
Értékek hozzárendelése a tulajdonságokhoz
• Speciális eljárásokkal történik • (Tools, Add Procedure,Property)
– Értékek átadása a class module-nak– Értékek átvétele a class module-ból
• Property Let procedure– Tulajdonságok beállítására
• Property Get procedure– Tulajdonságok átvételére– Muszáj visszaadni egy értéket (függvény)– Külső tantárgyi koncentráció: A papagájnak muszáj
zsivajogni!!!!
13
Property Get
Property Get PNév ([paraméterek] [As Típus] )UtasításokPNév=TulajdonságNév
End Property
Például:
Property Get LastName () as StringLastName=mstrLastName
End Property
A Class modulban generálva az általános deklarációs részben
14
Property Let
Property Let PNév([paraméterek] érték [As Típus] )
Utasítások
TulajdonságNév=érték
End Property
Example:Property Let LastName (strLastName as String)
mstrLastName=strLastNameEnd Property
15
Példányosítás:
• Dim objnév as New osztálynév(General Declarations)
• Dim objnév as osztálynév (General Declarations)
.
.
.Set objnév=New osztálynév(Pl. Form_Load)
16
Példányosítás:
Dim|Public|Private objnév As New osztnévDim mEmployee As New CEmployeePrivate mInventory As New CInventory
VagyDim mEmployee As CEmployeeSet mEmployee=New CEmployee
Private mInventory As CInventory
Set mInventory=New CInventory
17
Erőforrások felszabadítása
• Form_Unload-ban– Set mEmployee = Nothing
18
Inicializáló és termináló események
• Minden Class Module rendelkezik két előredefiniált eseménnyel:
• Class_Initialize– Amikor egy objektum létrehozódik
• Class_Terminate– Amikor egy objektum „Nothing”-gé válik– Kilép a láthatóságból (pl. lokális változóként
volt jelent)
19
Esemény generálás
• Objektum által• Lehetnek
– Esemény létrehozó
– Eseményt lekezelő
(Click, MouseUp, stb)
20
Reagálás az eseményekre
• Az eseményekre való reagálás szerint az objektumok lehetnek– Termelő – Csökkentő
• Examples of events we are used to seeing as responding– cmdOK_Click– form_MouseUp
21
Event Examples
• User clicks a command button– Event Source(Provider)=the Command Button
• Form module's command button's click event executes– Event Sink(Consumer)=Form
22
How to generate an event
• Declare the event in the General Declarations section of the class module, pass arguments with an event if you wish
Public Event TaskComplete( )
• Raise the event in code in the same module the Event was delcared in
If mblnJobFinished Then RaiseEvent TaskComplete
End If
23
How to respond to an event
• Declare the object using WithEventsPrivate WithEvents mMyTask as CMyTask
• Instantiate the object using SetSet mMyTask=New CMyTask
• Write the code for the event procedure
• When finished release the object variable using Nothing keyword
24
Collections
• A Collection Class holds references for a series of objects created from the same class or from different classes
• Actually a collection holds references to the objects– You reference by Index Number or a Key– Similar to list box and the associated items in
the list box
25
Key for Collection Objects
• Key must be a string
• Can be used to reference individual objects in the collection
• Declare the Key as String at the module level of the Class module for the object (not the collection)
• Add Property Get and Let procedures
26
Creating a Collection
• Create a new class module• Name it as plural of the objects in the
collection– CProducts is a Collection of CProduct objects
• Declare an object variable "As Collection" (in Gen Declarations) and VB automatically provides:– Add, Remove, and Item methods– Count property
27
Creating a collection cont.
• Code the Class_Initialize Event– Set equal to New Collection
• Code the Class_Terminate Event– Set equal to Nothing
• Code the private function that calculates the next Item number and/or assigns the Key
28
Creating a collection cont.
• Code the Add Wrapper Event to add items to the collection
• Code the Remove Wrapper Event to remove items to the collection
• Code Item Wrapper Event to access individual elements in the collection
• Write Property Get and Let for the Count property of the collection