View
242
Download
1
Tags:
Embed Size (px)
Citation preview
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
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
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.
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
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.
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.