43
Chapter 10: Writing Class Definitions Visual Basic .NET Programming: From Problem Analysis to Program Design

Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Embed Size (px)

Citation preview

Page 1: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Chapter 10: Writing Class Definitions

Visual Basic .NET Programming:

From Problem Analysis to Program Design

Page 2: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 2

Objectives

• Examine the three-tier design model

• Write a class definition

• Design and write overloaded constructors

• Create polymorphic methods

• Write properties

• Create shared attributes and methods

Page 3: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 3

Examining the Three-Tier Design Model

• Three-tier design

– Places objects in OO system into three categories of classes:

• Problem domain

• GUI

• Data access

– Developers define categories of classes when designing and building system

Page 4: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 4

Page 5: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 5

Writing a Class Definition

• Class definition

– VB .NET code representing a class

• Attributes

– Variables populated with data describing object

• Methods

– Model object’s behavior

Page 6: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 6

Drawing a Class Diagram

• Class diagram

– UML diagram

– Represents class

– Rectangular shape

– Contains:

• Class name

• Attributes

• Methods

Page 7: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 7

Page 8: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 8

Class Definition Syntax

• Class header

• Attribute definitions

• Method code

• End Class keyword

Page 9: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 9

Page 10: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 10

Defining Attributes

• Define attributes by declaring variables

• Similar to variable declaration

– Replace Dim keyword with access keyword:

• Public

• Private

– Example:

• Public name As String

Page 11: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 11

Example 10-1: Class Definition for Customer

1. Public Class Customer

2. Public name As String

3. Public address As String

4. Public phoneNo As String

5. End Class

Page 12: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 12

Naming Conventions

• Class names

– Begin with capital letter

– Examples:

• Customer

• Student

Page 13: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 13

Naming Conventions (continued)

• Attribute names

– Begin with lowercase character

– Subsequent words in start with capital letter

– Examples:

• address

• phoneNo

Page 14: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 14

Naming Conventions (continued)

• Method names – Begin with capital letter

– Subsequent words also start with capital letter

– Usually contain imperative verb describing what method does followed by noun

– Examples:• GetPhoneNo

• SetAddress

• ComputeLease

Page 15: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 15

Instantiating a Class

• Create instances of class

– Each instance represents specific occurrence of class

• Use New keyword:

– aCustomer = New Customer

Page 16: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 16

Example 10-2: Client Module to Instantiate Customer

(excerpt)4. Sub Main()

5. Dim aCustomer As Customer

6. ' create a Customer instance

7. aCustomer = New Customer

8. ' populate the attributes

9. aCustomer.name = “Eleanor”

10. aCustomer.address = “Atlanta”

11. aCustomer.phoneNo = “123-4567”

Page 17: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 17

Page 18: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 18

Page 19: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 19

Writing Accessor Methods

• Encapsulation

– Requires that internal data and structure of class be hidden from outside objects

– Requires that class have methods providing access to attributes

• Attributes should be Private

Page 20: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 20

Writing Accessor Methods (continued)

• Accessor methods– Provide access to attributes

– Often called standard methods

– Not shown on class diagram• Assumed to exist

• Custom methods– Perform functions for class

– Shown on class diagram

Page 21: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 21

Writing Accessor Methods (continued)

• Accessor method types:– Get

• Also called Getter

• Named Get + attribute name

• Function procedure

– Set• Also called Setter

• Named Set + attribute name

• Sub procedure

Page 22: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 22

Page 23: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 23

Example 10-3: Customer Class Definition with Accessor

Methods (excerpt)7. 'get accessor methods

8. Public Function GetName() As String

9. Return name

10. End Function

'set accessor methods

21. Public Sub SetName(ByVal aName As String)

22. name = aName

23. End Sub

Page 24: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 24

Writing a Parameterized Constructor

• Constructor – Special method

– Automatically invoked whenever you create an instance of class using keyword New

– Always named New

– Written as Sub procedure • Cannot return value

• VB .NET creates default constructor – Invoked when you instantiate class

Page 25: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 25

Writing a Parameterized Constructor (continued)

• Parameterized constructor

– Can contain parameter list

– Arguments populate instance attributes

Page 26: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 26

Example 10-5: Customer ClassDefinition with Parameterized

Constructor (excerpt)

5. ' parameterized constructor

6. Public Sub New(ByVal aName As String, ByVal anAddress As String, ByVal aPhoneNo As String)

7. SetName(aName)

8. SetAddress(anAddress)

9. SetPhoneNo(aPhoneNo)

10. End Sub

Page 27: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 27

Example 10-6: Client invokingParameterized Constructor in

Customer (excerpt)

5. Dim aCustomer As Customer

6. ' instantiate Customer

7. aCustomer = New Customer(“Eleanor”, “Atlanta”, “123-4567”)

Page 28: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 28

Example 10-7: Creating Multiple Customer Instances

(excerpt)5. Dim customer1, customer2, customer3 As

Customer

6. ' create 3 instances of Customer

7. customer1 = New Customer(“Eleanor”, “Atlanta”, “123-4567”)

8. customer2 = New Customer(“Emily”, “St. Louis”, “467-1234”)

Page 29: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 29

Page 30: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 30

Designing and Writing Overloaded Constructors

• Procedure signature:

– Name

– Parameter list

– Used to identify procedure

• Can overload constructor

– Must use different parameter list

– Can use Me keyword to call another constructor

Page 31: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 31

Creating Polymorphic Methods

• Polymorphism

– Means “many forms”

– Different methods in different classes with same signature do different things

Page 32: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 32

Page 33: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 33

Writing Properties

• Property

– Similar to accessor methods

– Appears as public attribute to client objects

– Retrieve contents of property as if it were a variable

– Begins with header

– Ends with End Property

Page 34: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 34

Example 10-16: Customer Class Definition with Properties (excerpt)

11. ' property named CustomerName

12. Public Property CustomerName() As String

13. Get

14. Return name

15. End Get

Page 35: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 35

Example 10-16: Customer Class Definition with

Properties (continued)

16. Set(ByVal aName As String)

17. name = aName

18. End Set

19. End Property

Page 36: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 36

Creating Shared Attributes and Methods

• Attributes and methods can be shared by all instances of class

• Called class methods and attributes

• Non-shared methods and attributes:

– Called instance methods and attributes

Page 37: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 37

Example 10-18: Class Definition for Circle with

Shared Attribute and Method (excerpt)

4. ' shared attribute

5. Private Shared PI As Double = 3.14159

21. ' shared method

22. Public Shared Function GetPI() As Double

23. Return PI

24. End Function

Page 38: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 38

Programming Example: Electricity Billing

• Redesign of Electricity Billing Programming Example at end of Chapter 9

– Includes class named ElectricBill to represent electricity bills

Page 39: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 39

Programming Example: Electricity Billing (continued)

• Invokes Client methods to:– Compute:

• Electricity charge

• Sales tax

– Display:• Electricity consumed

• Electricity charge

• Sales tax

• Total bill

Page 40: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 40

Page 41: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 41

Summary

• Three-tier design places objects into three categories of classes:

– Problem domain

– Graphical user interface (GUI)

– Data access

• Draw class diagram to model classes

• Create instances of class using keyword New

Page 42: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 42

Summary (continued)

• Accessor methods

– Methods that provide access to attributes

– Get

– Set

• Constructor

– Invoked whenever you create an instance of class using keyword New

Page 43: Chapter 10: Writing Class Definitions Visual Basic.NET Programming: From Problem Analysis to Program Design

Visual Basic .NET Programming: From Problem Analysis to Program Design 43

Summary (continued)• Polymorphism

– Different methods in different classes with same signature that do different things

• Property

– Similar to accessor method

– Appears as a public attribute

• Shared attributes and methods

– Shared among all class instances