0% found this document useful (0 votes)
23 views

Introducing Object-Oriented Programming (OOP)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Introducing Object-Oriented Programming (OOP)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 23

Introducing Object-Oriented

Programming (OOP)
CSCI N201: Programming Concepts

Copyright ©2005  Department of Computer & Information Science


Goals
• By the end of this lecture, you should …
• Understand the three pillars of Object-
Oriented Programming: Inheritance,
Encapsulation and Polymorphism.
• Understand what an object is.
• Understand object attributes, methods
and events.
• Understand how programmers use APIs.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Programming Languages
• Programming languages allow
programmers to code software.
• The three major families of languages are:
– Machine languages
– Assembly languages
– High-Level languages

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Machine Languages
• Comprised of 1s and 0s
• The “native” language of a computer
• Difficult to program – one misplaced 1 or
0 will cause the program to fail.
• Example of code:
1110100010101 111010101110

10111010110100 10100011110111
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Assembly Languages
• Assembly languages are a step towards easier
programming.
• Assembly languages are comprised of a set of
elemental commands which are tied to a specific
processor.
• Assembly language code needs to be translated
to machine language before the computer
processes it.
• Example:
ADD 1001010, 1011010

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
High-Level Languages
• High-level languages represent a giant
leap towards easier programming.
• The syntax of HL languages is similar to
English.
• Historically, we divide HL languages into
two groups:
– Procedural languages
– Object-Oriented languages (OOP)
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Procedural Languages
• Early high-level languages are typically
called procedural languages.
• Procedural languages are characterized by
sequential sets of linear commands. The
focus of such languages is on structure.
• Examples include C, COBOL, Fortran, LISP,
Perl, HTML, VBScript

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Object-Oriented Languages
• Most object-oriented languages are high-
level languages.
• The focus of OOP languages is not on
structure, but on modeling data.
• Programmers code using “blueprints” of
data models called classes.
• Examples of OOP languages include C++,
Visual Basic.NET and Java.
CSCI N201: Programming Concepts
Copyright ©2004  Department of Computer & Information Science
Object Oriented Programming
• Object – Unique programming entity that
has methods, has attributes and can react
to events.
• Method – Things which an object can do;
the “verbs” of objects. In code, usually
can be identified by an “action” word --
Hide, Show

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Object Oriented Programming
• Attribute – Things which describe an
object; the “adjectives” of objects. In
code, usually can be identified by a
“descriptive” word – Enabled, BackColor
• Events – Forces external to an object to
which that object can react. In code,
usually attached to an event procedure

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Object Oriented Programming
• Class – Provides a way to create new
objects based on a “meta-definition” of an
object (Example: The automobile class)
• Constructors – Special methods used to
create new instances of a class (Example:
A Honda Civic is an instance of the
automobile class.)

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
OOP - Encapsulation
• Incorporation into a class of data &
operations in one package
• Data can only be accessed through
that package
• “Information Hiding”

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
OOP - Inheritance
• Allows programmers to create new classes
based on an existing class
• Methods and attributes from the parent
class are inherited by the newly-created
class
• New methods and attributes can be
created in the new class, but don’t affect
the parent class’s definition

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
OOP - Polymorphism
• Creating methods which describe the
way to do some general function
(Example: The “drive” method in the
automobile class)
• Polymorphic methods can adapt to
specific types of objects.

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Classes and Objects
• A class is a data type that allows programmers to
create objects. A class provides a definition for an
object, describing an object’s attributes (data) and
methods (operations).
• An object is an instance of a class. With one class,
you can have as many objects as required.
• This is analogous to a variable and a data type, the
class is the data type and the object is the variable.

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Sample Class Defintion
Class Cube
Side As Real
The
Theclass
classCube
Cubeis issimilar
similar
Volume As Real
Subprogram SetSide(NewSide) to
tothe
thedefinition
definitionofofaa
Set Side = NewSide record,
record,but butalso
alsohas
has
End Subprogram functions
functionsadded
addedthat
thatare
are
Subprogram ComputeVolume() part
Set Volume = Side ^ 3 partof ofthe
theobjects
objects
End Subprogram
created.
created. So Sowewecan
canthink
think
Function GetVolume() As Real of
ofititas
asan
anobject
object‘has’
‘has’
Set GetVolume = Volume data
dataattributes
attributesand
and
End Function function
Function GetSide() As Real
functionattributes
attributes
Set GetSide = Side
End Function
End Class

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Sample Instance of Class
Main Program
Declare Cube1 As Cube
Write “Enter a positive number:”
Input Side1
Call Cube1.SetSide(Side1)
Call Cube1.ComputeVolume
Write “The volume of a cube of side ”, Cube1.GetSide
Write “is ”, Cube1.GetVolume
End Program

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Is JavaScript an OOP language?
• Well, not really …
• We call JavaScript an "object-inspired"
language
• It uses objects by way of supporting
inheritance and encapsulation, but it
doesn't really provide support for
polymorphism.

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
“Object-Oriented” JavaScript
• More like “Object-Inspired” JavaScript
• We can create new, custom, re-usable
objects in JavaScript that include their
own methods, properties and events.
• Consider the following problem: “I want to
record the color, brand, horsepower and
price of several cars.”

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Solution without OOP Design
• Uses parallel arrays
• Can be confusing
– Difficult to keep track of which car has which color,
brand, etc.
• Example:

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
What is an API?
• API stands for Application Programming
Interface
• Allows programmers to extend the current
language to included customized
components
• Most modern languages incorporate APIs

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Solution with OOP Design
• Calls to an API that contains the custom
car object
• Much cleaner code
• Re-usable object

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science
Questions?

CSCI N201: Programming Concepts


Copyright ©2004  Department of Computer & Information Science

You might also like