1 / 20

Visual Basic: An Object Oriented Approach

Visual Basic: An Object Oriented Approach. 6: Object Modelling. OOP – The Basics Revised. Classes – templates for objects Encapsulation – separation of internal workings from external interface Properties – attributes of an object Methods – operations definValidateed for a class of objects

autryj
Download Presentation

Visual Basic: An Object Oriented Approach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual Basic: An Object Oriented Approach 6: Object Modelling

  2. OOP – The Basics Revised • Classes – templates for objects • Encapsulation – separation of internal workings from external interface • Properties – attributes of an object • Methods – operations definValidateed for a class of objects • Messages – interactions between objects

  3. Object Models • Real programs will involve large numbers of objects • Will interact in various ways • Will form logical structures • May involve several levels of structure in complex systems • Key to maintaining coherence is in building an object model that provides a ‘world view’ of the system

  4. Use-Case Diagrams • Used to obtain a high level (user-level) picture of the system • Can be used in discussions with clients • Shows main interactions between system and users/external environment ATM - Bank Machine Accept Card Verify PIN Print Statement Withdraw Cash User (Actor) Deposit Cash

  5. :Deposit(50) :ATM :Account Class Model based on Use-Case Diagram • Having identified classes, need to define… • Interactions between them • Structure • Class Interfaces ATM ValidateUser PrintStatement DoDeposit DoWithdrawal Account Balance PIN Owner Deposit Withdraw Statement

  6. Coding a Class • Need to… • Determine storage needs (member variables) • Include structural relationships – e.g. An Account owns a collection of Transactions • Implement Methods and Properties in terms of accesses to member variables • Consider mechanisms for getting info to and from and object • Properties (the obvious) • Parameters to Subs and Functions (can apply multiple values at once) • Results of Functions

  7. Coding Classes • Start from class lowest in structure/hierarchy • Likely that higher up classes will have these as components • Easier to test • Build then test each class • First individually, then • With classes it interacts with, then • In sub-system • Have test data ready • Best to consider testing during design phases • Store test data and revise/reuse as necessary

  8. Example – Bank/ATM • Assume two classes only • ATM Class models Teller machine • Account class models individual account • Start with Account class • From Use-Case point of view, ATM accesses Account and is therefore controller • Can build and test this class before moving on to ATM (which needs a working account to enable a full test) • Decide on tests necessary based on Use-Case diagram • Be prepared to change Use-Case, structure etc. as whole picture unfolds.

  9. Account Class Private mvarBalance As Currency ‘ Unrealistic, but will do for example Private mvarPIN As Integer Private mvarOwner As String Public Property Get Balance() As Currency… Public Property Get PIN() As Integer… Public Property Let PIN(newValue As Integer)… Public Property Get Owner() As String… Public Property Let Owner(newValue As String)… Public Sub Deposit(amount As Currency)… Public Sub Withdraw(amount As Currency)… Public Function Statement() As String… Whole Property and Method code not shown here. See samples next, and exercises in chapters 2 and 7 for complete code. Mostly, the code is Simple and obvious.

  10. Account – Sample Property and Method Read-only property Public Property Get Balance() As Currency Balance = mvarBalance End Property Public Property Get PIN() As Integer PIN = mvarPIN End Property Public Property Let PIN(newValue As Integer) mvarPIN = newValue End Property Public Sub Deposit(amount As Currency) mvarBalance = mvarBalance + amount End Sub Read-only property Read-write property Method definition

  11. Testing Account • In VB can use the Immediate Window to test a class • Create an object • Execute methods • Print property values (Using Print or ?) • Can also copy, the sequence of test statements, paste into Notepad or an editor, and save for re-testing if changes are made. Set A = New Account A.Owner = “Fred Bloggs” A.PIN = “1234” A.Deposit 500.00 Print A.Statement Statement for: Fred Bloggs Balance = £500.00 A.Withdraw 50 Print A.Statement Statement for: Fred Bloggs Balance = £450.00 ‘ etc…

  12. Continue Development • Can go up hierarchy to create next class (ATM) • Now possible to test ATM since Account class is in place • ATM class must create an Account object to interact with • User-Interactions with ATM should translate to ATM interactions with Account

  13. Example ATM Method Public Function ValidateUser(A As Account) As Boolean Dim userPIN As Integer userPIN = InputBox(“Enter PIN”) If A.PIN = userPIN Then Set mvarCurrentAccount = A ValidateUser = True Else ValidateUser = False End If End Property This method depends on the Account A being Available. Success of method leads to ATM Storing a reference to the Account.

  14. Testing an ATM Method Set A = New Account A.Owner = “Fred Bloggs” A.PIN = “1234” Set ATM = New ATM Print ATM.ValidateUser A ‘ VB creates an InputBox() here to enter PIN number ‘ ATM returns True or False depending on input to it. ‘ Could now have ATM performing deposits and ‘ withdrawals etc. e.g… ATM.Deposit 100.00 ATM.PrintStatement Statement for: Fred Bloggs Balance = £100.00

  15. References • A Reference is a variable that acts as an alias for an object • VB uses references exclusively for interacting with objects • An object with no references to it is destroyed automatically • When an object is created, a reference to it is assigned to an object variable • As a consequence of this, an object can have any number of references to it.

  16. Account Object A References and Objects Set A = New Account Assigns reference Creates object Set A2 = A A2

  17. Collections • A Collection maintains a list of object references • Therefore no need to maintain individual reference variables to prevent objects from being destroyed • Acts as an unbounded array – no need to indicate how many elements to accommodate • A collection is itself an object • Can create collections of collections

  18. Collection Methods • Four main methods • Add – adds an object reference to the collection • Remove – removes a reference • Count – returns number of references in the collection • Item – a virtual array in the collection – allows access to object references • Indexing • Objects can be retrieved by number • Objects can be added with a Key (string), which acts as a textual index

  19. A Collection Set C = New Collection Set A = New Account A.Owner = “Fred” C.Add A Set A = New Account A.Owner = “Mary” C.Add A, “Second account” Print C.Count 2 Print C(1).Owner Fred Print C(“Second Account”).Owner Mary

  20. Collections and For Each… • Collections and objects introduce a new style of For..Next loop For Each A In C: Print A.Owner: Next Fred Mary

More Related