Is2215 lecture4 student (1)

74
SOME MORE EXAMPLES DOING IT IN CODE

description

 

Transcript of Is2215 lecture4 student (1)

Page 1: Is2215 lecture4 student (1)

SOME MORE EXAMPLESDOING IT IN CODE

Page 2: Is2215 lecture4 student (1)

ATMEXAMPLE 1

Page 3: Is2215 lecture4 student (1)

The Problem

You are required to create an ATM application using OOP

Requirements: User can deposit money User can withdraw money User can view balance

Page 4: Is2215 lecture4 student (1)

Example #1

Page 5: Is2215 lecture4 student (1)

Creating the Class In Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 6: Is2215 lecture4 student (1)

Creating Classes in Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Declare Methods

Create constructors as needed

Create a destructor, if appropriate

Page 7: Is2215 lecture4 student (1)

1. Add Class to the Project

Page 8: Is2215 lecture4 student (1)

Creating Classes in Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 9: Is2215 lecture4 student (1)

2. Provide Appropriate Name

Page 10: Is2215 lecture4 student (1)
Page 11: Is2215 lecture4 student (1)

Creating Classes in Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 12: Is2215 lecture4 student (1)

3. Declare Properties

What does it look like?

What are its attributes?

What characteristics does it have?

Page 13: Is2215 lecture4 student (1)

3. Declare Properties

Page 14: Is2215 lecture4 student (1)

Creating Classes in Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 15: Is2215 lecture4 student (1)

4. Property Procedures

This property is

ReadOnly

Page 16: Is2215 lecture4 student (1)

Creating Classes in Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 17: Is2215 lecture4 student (1)

3. Create Methods

What does it do?

How does it behave?

What action does it perform?

Page 18: Is2215 lecture4 student (1)

5. Deposit

Page 19: Is2215 lecture4 student (1)

5. Withdraw

Page 20: Is2215 lecture4 student (1)

Creating Classes in Code

Add a class to the project

Provide appropriate name for the class

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 21: Is2215 lecture4 student (1)
Page 22: Is2215 lecture4 student (1)

BANK ACCOUNTEXAMPLE 2

Page 23: Is2215 lecture4 student (1)

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 24: Is2215 lecture4 student (1)

1.Declare Properties

Page 25: Is2215 lecture4 student (1)

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 26: Is2215 lecture4 student (1)

2. _name

Retrieve Value

Store Value

Page 27: Is2215 lecture4 student (1)

2. _balance

Page 28: Is2215 lecture4 student (1)

2. _MaximumWithdrawal

Page 29: Is2215 lecture4 student (1)

Static (Shared) Members Data and behaviours that pertain to

class as a whole Not just an individual instance of a

class You can access static members even

if no class exists

Page 30: Is2215 lecture4 student (1)

2. Shared _Rate

Page 31: Is2215 lecture4 student (1)

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 32: Is2215 lecture4 student (1)

Deposit()

Page 33: Is2215 lecture4 student (1)

Overloading Methods A method might need different

parameter in different circumstances The solution is to define overloaded

methods Methods have the same name –

common intent Each method can have a unique

signature In previous example method takes

parameter as a decimal number

Page 34: Is2215 lecture4 student (1)

Deposit ()

Page 35: Is2215 lecture4 student (1)

Overloading Methods The overloaded method had the

same name The parameter list was different Accepts an amount as a String (text)

Converts it to a decimal

Page 36: Is2215 lecture4 student (1)

Withdraw ()

Page 37: Is2215 lecture4 student (1)

CalculateInterest()

Page 38: Is2215 lecture4 student (1)

IncreaseRate ()

Page 39: Is2215 lecture4 student (1)

Declare properties

Property Procedures

Create Methods

Add constructors/destructors if needed

Page 40: Is2215 lecture4 student (1)

4. Overloading Constructors

Page 41: Is2215 lecture4 student (1)

In Use

Dim account as New _ BankAccount()

Page 42: Is2215 lecture4 student (1)

Overloading Constructors

Page 43: Is2215 lecture4 student (1)

In Use

Dim account as New _ BankAccount(“Joe”)

Page 44: Is2215 lecture4 student (1)

Overloading Constructors

Page 45: Is2215 lecture4 student (1)

In Use

Dim account as New _ BankAccount(“Joe”, 1000)

Page 46: Is2215 lecture4 student (1)

4. Overriding Destructor

Page 47: Is2215 lecture4 student (1)

Instantiating the Object

Using the Class

Page 48: Is2215 lecture4 student (1)

Create Object

Page 49: Is2215 lecture4 student (1)

Withdrawing Cash

Page 50: Is2215 lecture4 student (1)

Method

InputBox

Page 51: Is2215 lecture4 student (1)

Withdrawing Cash

Page 52: Is2215 lecture4 student (1)

Method

Page 53: Is2215 lecture4 student (1)

Depositing Cash

Page 54: Is2215 lecture4 student (1)

Calculate Interest

Page 55: Is2215 lecture4 student (1)

Method

Val(txtRate.Text) / 100).ToString( "C"))

Page 56: Is2215 lecture4 student (1)

Advanced OOP

Extending our Example

Page 57: Is2215 lecture4 student (1)

Accessibility LevelsAccess Level Visual Basic Access

Modifier

Unrestricted accessibility

Public

Accessible by containing class

Private

Accessible in current assembly

Friend

Accessible by containing class and derived class

Protected

Accessible in current assembly and by derived classes

Protected Friend

Page 58: Is2215 lecture4 student (1)

Inheritance

Advantages Developer Productivity Real-world modelling Consistency

Page 59: Is2215 lecture4 student (1)

BankAccount

SavingsAccount

CheckingAccount

Base class

Derived Classes

Page 60: Is2215 lecture4 student (1)

Inheritance

A base class can define overridable methods and properties Base class provides the default

implementation Derived class provides alternative

implementations A derived class can:

Inherit base class members Override base class members Shadow base class members

Page 61: Is2215 lecture4 student (1)

Client application

Polymorphism enables an application to use instances of derived classes interchangeablyPolymorphism enables an application to use instances of derived classes interchangeably

Deposit

Deposit

A SavingsAccount

A CheckingAccount

Benefits of polymorphism:Benefits of polymorphism:

Consistency and simplicity

Extensibility and resilience

Consistency and simplicity

Extensibility and resilience

Page 62: Is2215 lecture4 student (1)

Base Class Properties

Page 63: Is2215 lecture4 student (1)

Base Class Properties

Page 64: Is2215 lecture4 student (1)

Base Class Properties

Page 65: Is2215 lecture4 student (1)

Base Class Methods

Page 66: Is2215 lecture4 student (1)

Base Class Methods

Page 67: Is2215 lecture4 student (1)

Derived Class

Page 68: Is2215 lecture4 student (1)

Derived Class

Page 69: Is2215 lecture4 student (1)

Derived Class

Page 70: Is2215 lecture4 student (1)

Shadowing

To indicate a derived class member shadows a base class member Use the Shadows Keyword

Page 71: Is2215 lecture4 student (1)

ExamplePublic Class BankAccount

Protected ReadOnly Property _

Balance() As Decimal

End Property

Public Class SavingsAccount

Public Shadows Sub Balance( _

ByVal amount As Decimal)

‘Implementation

End Sub

Page 72: Is2215 lecture4 student (1)

Combining and Overloading

Page 73: Is2215 lecture4 student (1)

Combining and Overloading

Page 74: Is2215 lecture4 student (1)

Implement the Class