Top Banner
Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill
48

Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

Apr 01, 2015

Download

Documents

Celine Truslow
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

Chapter 12

OOP:

Creating Object-Oriented Programs

Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.McGraw-Hill

Page 2: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-2

Objectives (1 of 2)

• Use object-oriented terminology correctly.

• Create a two-tier application that separates the user interface from the business logic.

• Differentiate between a class and an object.

• Create a class that has properties and methods.

• Declare object variables and use property procedures to set and retrieve properties of a class.

Page 3: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-3

Objectives (2 of 2)

• Assign values to the properties with a constructor.

• Instantiate an object in a project using your class.

• Differentiate between shared members and instance members.

• Understand the purpose of the constructor and destructor methods.

• Inherit a new class from your own class.

• Use visual inheritance by deriving a form from another form.

Page 4: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-4

Object-Oriented Programming (OOP)

• OOP is currently the most accepted style of programming.

• Java, C# and SmallTalk were designed to be OO (object oriented) from inception.

• VB and C++ have been modified to accommodate OOP.

• VB.NET 2003 was the first version of VB to be truly object oriented.

• As projects become more complex, using objects becomes increasingly important.

Page 5: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-5

Objects

• VB allows the creation of new object types by creating a class.

•Classes may have properties, methods, and events.

• Objects are things such as buttons; buttons is a class, but exitButton is an instance of the class—the instance is the object.

• There may be many objects of a new class type.

Page 6: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-6

"Cookie Analogy"

• Class = Cookie cutter

• Instantiate = Making a cookie using the cookie cutter

• Instance = Newly made cookie

• Properties of the Instance may have different values.• Icing property can be True or False.

• Flavor property could be Lemon or Chocolate

• Methods = Eat, Bake, or Crumble

• Events = Cookie crumbling and informing you

Page 7: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-7

Object-Oriented Terminology

• Encapsulation

• Inheritance

• Polymorphism

• Reusable Classes

• Multitier Applications

Page 8: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-8

Encapsulation

• Combination of characteristics of an object along with its behavior in "one package"

• Cannot make object do anything it does not already "know" how to do.

• Cannot make up new properties, methods, or events.

• Sometimes referred to as data hiding, an object can expose only those data elements and procedures that it wishes.

Page 9: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-9

Inheritance (1 of 2)

• Ability to create a new class from an existing class

• Original class is called Base Class, Superclass, or Parent Class.

• Inherited class is called Subclass, Derived Class, or Child Class.

• For example, each form created is inherited from the existing Form class.

• Purpose of inheritance is reusability.

Page 10: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-10

Inheritance (2 of 2)

• Examine first line of code for a form in the Editor.

Partial Public Class Form1Inherits System.Windows.Forms.Form

Inherited Class: Subclass, Derived Class, Child Class

Original Class: Base Class, Superclass, Parent Class

Page 11: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-11

Inheritance Example

• Base Class

• Person

• Subclasses

• Employee

• Customer

• Student

The derived classes inherit from the base class.

Page 12: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-12

Polymorphism

• Methods having identical names, but different implementations

• Radio button, check boxes, and list boxes all have a Select method—the Select method operates appropriately for its class.

• Overloading — Several argument lists for calling the method

• Example: MessageBox.Show method

• Overriding — Refers to a method that has the same name as its base class

• Method in subclass takes precedence.

Page 13: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-13

Reusability

• Big advantage of OOP over traditional programming

• New classes created can be used in multiple projects.

• Each object created from the class can have its own properties.

Page 14: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-14

Multitier Applications

• Classes are used to create multitier applications.

• Each of the functions of a multitier application can be coded in a separate component and stored and run on different machines.

• Goal is to create components that can be combined and replaced.

Page 15: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-15

Three-tier Model

• Most popular implementation

Page 16: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-16

Designing Your Own Class

• Analyze characteristics needed by new objects.

• Characteristics or properties are defined as variables.

• Define the properties as variables in the class module.

• Analyze behaviors needed by new objects.

• Behaviors are methods.

• Define the methods as sub procedures or functions.

Page 17: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-17

Creating Properties in a Class

• Define variables inside the Class module by declaring them as Private — these store the value of the properties of the class.

• Do not make Public, since that would violate encapsulation (each object should be in charge of its own data).

Page 18: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-18

Property Procedures

• Properties in a class are accessed with accessor methods in a property procedure.

• Name used for property procedure is the name of the property seen by the outside world.

• Set accessor method.• Uses Value keyword to refer to incoming value for

property

• Assigns a value to the property

• Get Statement uses the value keyword to refer to the incoming value of the property.

• Must assign a return value to the procedure name or use a Return Statement to return a value.

Page 19: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-19

Property Procedure General Form

{Private | Protected } ClassVariable As DataType[Public] Property PropertyName( ) As DataType

GetReturn ClassVariable [|PropertyName =

ClassVariable]End Get

Set (ByVal Value As DataType)[statements, such As validation]ClassVariable = Value

End SetEnd Property

Page 20: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-20

Read-Only Properties

• In some instances, a value for a property can be retrieved by an object but not changed.

• A property can be written to create a read-only property.

• Create a read-only property by using the ReadOnly modifier.

' The property procedure for a read-only property.ReadOnly Property TotalPay() As Decimal Get Return TotalPayDecimal End GetEnd Property

Page 21: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-21

Write-Only Properties

• At times, a property can be assigned by an object, but not retrieved.

• Create a property block that contains only a Set to create a write-only property.

' Private module-level variable to hold the property value.Private PriceDecimal As DecimalPublic WriteOnly Property Price() As Decimal Set(ByVal value As Decimal) If value >= 0 Then PriceDecimal = value End If End SetEnd Property

Page 22: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-22

Class Methods

• Create methods by coding public procedures within a class.

• Methods declared with the Private keyword are available only within the class.

• Methods declared with the Public keyword are available to external objects.

Page 23: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-23

Constructors and Destructors

• Constructor

• Method that automatically executes when an object is instantiated

• Constructor must be public and is named New.

• Ideal location for an initialization tasks such as setting the initial values of variable and properties

• Destructor

• Method that automatically executes when an object is destroyed

• Rarely needed in .NET classes (automatic garbage collection)

Page 24: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-24

Overloading the Constructor

• Overloading means that two methods have the same name but a different list of arguments (the signature).

• Create by giving the same name to multiple procedures in a class module, each with a different argument list.

Page 25: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-25

Parameterized Constructor

• Constructor that requires arguments

• Allows arguments to be passed when creating an object

Page 26: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-26

Creating a New Class — Steps

• Project, Add Class.• In Add New Item dialog box, choose Class.

• Name the Class.

• Define the Class properties.

• To allow access from outside the class, add property procedures.

• Code the methods.

Page 27: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-27

Creating a New Object Using a Class (1 of 2)

• Similar to creating a new tool for the toolbox but not yet creating an instance of the class

• Two-step operations• Declare a variable for the new object.• Instantiate the object using the New keyword.

• In VB, it is ok to declare and instantiate an object at the same time.

Private TheBookSale As BookSaleTheBookSale = New BookSale( )OrDim TheBookSale As New Booksale( )

Page 28: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-28

Creating a New ObjectUsing a Class ( 2 of 2)

• If object variable is needed in multiple procedures, declare the object at class level.

• Instantiate the object. • May need to include a New statement

• and a Try/Catch block for error handling (Try/Catch block must be inside a procedure.)

• The preferred technique is to include the New statement inside of a procedure at the time the object is needed.

• Pass values for the arguments at instantiation when using a parameterized constructor.

Page 29: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-29

Instance Variables versus Shared Variables

• Instance variables or properties

• Separate memory location for each instance of the object

• Shared variables or properties

• Single variable that is available for ALL objects of a class

• Can be accessed without instantiating an object of the class

• When creating, use the Shared keyword to create.

• Shared properties can be set to read-only so that their values can be retrieved but not set directly.

Page 30: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-30

Shared Members in MSDN Help

Page 31: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-31

.NET Automatic Garbage Collection

• Feature of .NET Common Language Runtime (CLR) that cleans up unused components

• Periodically checks for unreferenced objects and releases all memory and system resources used by the objects

• Microsoft recommends depending on garbage collection to release resources rather than Finalize procedures.

Page 32: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-32

Inheritance

• New class can:

• Be based on another class (base class)

• Inherit the properties and methods (but not constructors) of the base class, which can be

–One of the VB existing classes

–Your own class

• Use the Inherits statement following the class header and prior to any comments

Page 33: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-33

Inheriting Properties and Methods

• Public and protected data members and methods of the base class are inherited in the derived class.

• Must write the method in the derived class if wanting to override the base-class method.

• Can declare elements with the Protected keyword which specifies that the element is accessible only within its own class or any class derived from that class.

Page 34: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-34

Constructors in Inheritance

• There is one exception for a derived class inheriting all public and protected methods:

• A subclass cannot inherit constructors from the base class.

• Each class must have its own constructors .–Exception is if the only constructor needed is an empty

constructor — VB automatically creates an empty constructor for all classes.

Page 35: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-35

Overriding Methods

• Methods with the same name and the same argument list as the base class

• Derived class (subclass) will use the new method rather than the method in the base class.

• To override a method• Declare the original method with the Overridable

keyword.

• Declare the new method with the Overrides keyword.

• The access modifier for the base-class procedure can be Private or Protected (not Public).

Page 36: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-36

Accessing Properties

• Derived class can set and retrieve base class properties by using the property accessor methods.

• Call the base class constructor from the derived class constructor to use the property values from the base class.

• If the constructor requires arguments, the values can be passed when the constructor is called.

Page 37: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-37

Creating a Base Class Strictly for Inheritance

• Classes can be created strictly for inheritance by two or more similar classes, and are never instantiated.

• For a base class that you intend to inherit from, include the MustInherit modifier on the class declaration.

• In each base class method that must be overridden, include the MustOverride modifier and no code in the base class method.

Page 38: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-38

Inheriting Form Classes

• Many projects require several forms.

• Create a base form and inherit the visual interface to new forms.

• Base form inherits from System.Windows.Forms.Form.

• New form inherits from Base form.

Page 39: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-39

Creating Inherited Form Class

• In the Project menu, Add Windows Form.

• Modify the Inherits Statement to inherit from base form using project name as the namespace.

• --OR--

• In the Project menu, Add Inherited Form.

• In dialog, select name of base form.

Page 40: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-40

Base and Inherited Forms

Page 41: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-41

Coding for Events of an Inherited Class

• Copy procedure from base class into derived class and make modifications.

• An alternate way is to use the inherited event handler in the derived class.

Page 42: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-42

Managing Multiclass Projects

• VB projects are automatically assigned a namespace which defaults to the name of the project.

• Add an existing class to a project by copying the file into the project folder and then adding the file to the project using Project/Add Existing Item.

--OR--

• Right-click the project name in the Solution Explorer and select Add/Existing Item from the context menu.

Page 43: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-43

Using the Object Browser

• Use it to view the names, properties, methods, events, and constants of VB objects, your own objects, and objects available from other applications.

• To Display

• Select View/Object Browser –OR--

• Object Browser toolbar button.

Page 44: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-44

The Object Browser Window

Page 45: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-45

Examining VB Classes (1 of 2)

Members ofSystem.Windows.Forms.MessageBox Class

Page 46: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-46

Examining VB Classes (2 of 2)

Display theMessageBoxButtons Constants

Page 47: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

12-47

Examining Your Own Classes

Page 48: Chapter 12 OOP: Creating Object- Oriented Programs Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

Chapter 12

OOP:

Creating Object-Oriented Programs

Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.McGraw-Hill