28
IS437: Fall 2004 Instructor: Dr. Boris Jukic Object Oriented Programming

IS437: Fall 2004 Instructor: Dr. Boris Jukic Object Oriented Programming

  • View
    242

  • Download
    1

Embed Size (px)

Citation preview

IS437: Fall 2004

Instructor: Dr. Boris Jukic

Object Oriented Programming

Learning Objectives

• Object-oriented concepts

• Implementation of object-oriented concepts in

Visual Basic .Net

Limitations Of Conventional Languages

o Small Vocabularyo Highly Proceduralo Logic Buried In Long Lines Of Codeo Difficult To Re-Use Codeo Costly To Build And Modifyo Allow Only Simple Data Structures

Object-Oriented Approach

PROGRAMMING LANGUAGES : SMALLTALK, C++, Java, Visual Basic .Net

To Achieve Greater Semantic Expressiveness - Complex Structure - A Variety Of Relationships - Natural Representation

To Reduce Use of Procedural Blocks of Code

To Enhance Re-Usability

Goals

Objects Correspond to Real World Constructs

student university

cashier

car ATM

radiosales report

….

ObjectEncapsulationClassClass Hierarchy And InheritanceMessage And Polymorphism

Key OO Concepts

Everything Is Modeled As Object:Millie Buddy SnoopyDog Cashier A Tax Return

Each Object Has A Name (External Identifier)

An Object Has Two Components :

- Properties (To Store Information) Can Take On Complex Structure : E.G. : Widget_A (Acquisition_Date, Quantity On Hand) (( 3/10/92 $100) ( 3/20/92 $150) ( 3/25/92 $200))

- Methods (Behavior Encapsulation)

Object & Encapsulation

Record structure in COBOL

John Smith 445-09-2049 Swimming

Mary Scott 670-37-4095 Bridge

Bill Shoemaker 888-92-9104 Dancing

John Smith 123-87-3094 Painting

Name Social Security # Hobby

Records have no common external identifiers.

Attributes are single-valued.

DOG

Class Example

DOG(COLOR, SPEED)

MILLE PUPPY SNOOPY

instance-of relationship

Class Hierarchy Example

ANIMAL

BIRD DOG FISH

POLLY MILLIE MOBY

IS-A-Kind of relationship

GENERALIZATION-SPECIALIZATION RELATIONSHIP

instance-of relationship

STUDENT

UNDER-GRADUATESTUDENT

MBA STUDENT

PH.D.STUDENT

IS-A-Kind of relationship

Class Hierarchy: Another Example

Inheritance

ANIMAL

BIRD DOG FISH

POLLY MILLIE MOBY

(COLOR, SPEED)

(Beak, Fly) (Bark, Ears)

Polymorphism

Ability to take on many shapes and forms Many classes can provide the same

property or method, without having to worry what type of class it is:

Dog class (eat() method) Mosquito class (eat() method)

Of course, same method would be implemented in a very different way

Same class can have multiple versions of the method Overloaded methods

- Greater Semantic ExpressivenessCan Represent Is_A RelationshipsSupport Complex Data Structure

- Behavior Encapsulation Facilitates The Modeling Of Real-World Objects

- Object Library (Re-Use)

- Reduce Procedurality Through An Enlarged Vocabulary

Benefits Of OO Approach:

Difficulties

Different Programming Paradigm Resistance, Requires a shift in thinking)

Increased Complexity: Takes time to become acquainted with

the library of objects

Implementation of OO in Visual Basic .Net

Object

Encapsulation (property and method)

Classes: over 6,000 in number

Class hierarchy and inheritance

Polymorphism

Visual Basic .Net supports all of the key OO concepts. It is a full-fledged OO system.

Textbox

TextBox1

instance-of relationship

class

object

Object, Class, Encapsulation in VB .Net

New keyword: createsa new instance of an object class

New Method in VB .Net

• Also called constructor

• It is the method that classes use to instantiating

objects.

Dim label1 as Label

Label1 = New Label

Dim label1 as New Labelor

Add a control to a form

Me.controls.add(label1)

Collections of controls on a form

Add to the collection

The control to be addedRepresents

this form

A Simplified View of Class Hierarchy in VB .Net

Object

Component

ControlData Adapter

LabelDateTimePicker PictureBox

IS-A-Kind of relationship

Polymorphism in VB .Net

• Functionally equivalent methods can have the same name• VB .Net implements polymorphism in various ways: - overloading - overriding - method hiding

Polymorphism in VB .Net: Overloading

Messagebox.Show(“Enter numeric data.”)

Messagebox.Show(“Enter numeric data.”, “Data entry error”)

Messagebox.Show(“This is a message.”, “This is a title bar”, MessageBoxButtons.OK)

Overloading: methods sharing the same name, for the same object, but with different signatures (argument lists)

MessageBox General Form

Messagebox.Show(TextMessage)

Messagebox.Show(TextMessage, TitlebarText)

Messagebox.Show(TextMessage, TitlebarText, MessageBoxButtons)

Messagebox.Show(TextMessage, TitlebarText, MessageBoxButtons, MessageBoxIcons)

Polymorphism in VB .Net: Overriding

Animal

Dog

Snoopy

Talk method:“I cannot talk”

Talk method: “Bark Bark”

Snoopy.Talk

“Bark Bark”

Parent class and child class may have methods with the same name.

The method in child class can override the method in parent class.

Polymorphism: method hiding

Button1.Click

CustomerForm.Click

Checkbox1.Click

Namespaces

Namespaces are file cabinets for classes, similar to the concept of folders.

Namespaces can contain classes, other namespaces, etc.

Namespaces help organize the vast number of classes into a neat structure.

To make use of a class, we need to reference or import the namespace that contains the class.

Namespace Hierarchy

System namespaceSystem

Windows.Forms namespace

System.Windows.Forms

Button

Label

TextBox

Data namespace

System.Data

Drawing namespace

System.Drawing

OleDb namespace

System.Data.OleDb

OleDb provides interaction with MS Access.