280 likes | 374 Views
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
E N D
Objektum Orientált Programozás Visual Basicben
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érevagy más eseményre (automatikusan kiváltódó metódusok) Click, got focus, activate Objektumok
Ú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 Osztály modul
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ó” Osztályok és példányok
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 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 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) 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 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 Objektum Orientált Terminológia
Új osztály létrehozása • Project, Add Class Module
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) Privatetulajdonságnévastípus Az osztály tulajdonságai
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!!!! Értékek hozzárendelése a tulajdonságokhoz
Property Get PNév ([paraméterek] [As Típus] ) Utasítások PNév=TulajdonságNév End Property Például: Property Get LastName () as String LastName=mstrLastName End Property A Class modulban generálva az általános deklarációs részben Property Get
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=strLastName End Property Property Let
Dim objnévas Newosztálynév (General Declarations) Dim objnévas osztálynév (General Declarations) . . . Set objnév=New osztálynév (Pl. Form_Load) Példányosítás:
Dim|Public|Private objnévAs Newosztnév Dim mEmployee As New CEmployee Private mInventory As New CInventory Vagy Dim mEmployee As CEmployee Set mEmployee=New CEmployee Private mInventory As CInventory Set mInventory=New CInventory Példányosítás:
Form_Unload-ban Set mEmployee = Nothing Erőforrások felszabadítása
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) Inicializáló és termináló események
Objektum által Lehetnek Esemény létrehozó Eseményt lekezelő (Click, MouseUp, stb) Esemény generálás
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 Reagálás az eseményekre
User clicks a command button Event Source(Provider)=the Command Button Form module's command button's click event executes Event Sink(Consumer)=Form Event Examples
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 TaskCompleteEnd If How to generate an event
Declare the object using WithEvents Private WithEvents mMyTask as CMyTask Instantiate the object using Set Set mMyTask=New CMyTask Write the code for the event procedure When finished release the object variable using Nothing keyword How to respond to an event
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 Collections
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 Key for Collection Objects
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 Creating a Collection
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 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 Creating a collection cont.