Python Mini-Course
University of Oklahoma
Department of Psychology
Lesson 25
The object-oriented thought process
6/16/09
Python Mini-Course: Lesson 25
1
Lesson objectives
1. Define the key terms used in object-
oriented programming (OOP)
2. Understand the difference between
an object and a class
3. Describe the types of relationships
that are possible between objects
6/16/09
Python Mini-Course: Lesson 25
2
Procedural vs. OOP
Review from Lesson 6
Procedural programming separates
the program operations and the
data
Object-oriented programming
packages the program operations
and the data together in object
6/16/09
Python Mini-Course: Lesson 25
3
What is an object?
The building blocks of an O-O
program
A program that uses O-O is basically
a collection of objects
Objects interact much like things in
the real world do
6/16/09
Python Mini-Course: Lesson 25
4
What is an object?
Objects have two components:
Data (i.e., attributes)
Behaviors (i.e., methods)
6/16/09
Python Mini-Course: Lesson 25
5
Object attributes
Store the data for that object
Example (taxi):
Driver
OnDuty
NumPassengers
Location
6/16/09
Python Mini-Course: Lesson 25
6
Object methods
Define the behaviors for the
object
Example (taxi):
PickUp
DropOff
GoOnDuty
GoOffDuty
6/16/09
Python Mini-Course: Lesson 25
7
•GetDriver
•SetDriver
•GetNumPassengers
Object interface
To use a method, the user
(programmer) must know:
Name of the method
Parameters to pass to the method
What (if anything) the method
returns
6/16/09
Python Mini-Course: Lesson 25
8
Object implementation
The user does NOT need to know
how the method works internally
6/16/09
Python Mini-Course: Lesson 25
9
What is a Class?
A blueprint for an object
Classes can be thought of as
templates or cookie cutters
Given a class description, we can
instantiate objects of that class
Classes are high-level data types
6/16/09
Python Mini-Course: Lesson 25
10
OOP concepts
Encapsulation
Data and behaviors are packaged
together, but the object only reveals
the interfaces needed to interact
with it
Internal data and behaviors can
remain hidden
6/16/09
Python Mini-Course: Lesson 25
11
OOP concepts
Interfaces
Fundamental means of
communication between objects
Should completely describe to user
(programmer) how to interact with
the object
Should control access to attributes
6/16/09
Python Mini-Course: Lesson 25
12
Inheritance
You can create new classes by
abstracting out common
attributes and behaviors from a
parent (or base) class
6/16/09
Python Mini-Course: Lesson 25
13
6/16/09
Python Mini-Course: Lesson 25
14
Is-a relationship
Because sub-classes inherit from
their base class, they have an is-
a relationship:
Lion is a cat
Cat is a mammal
6/16/09
Python Mini-Course: Lesson 25
15
Polymorphism
Allows similar objects to to
respond to the same message
(method call) in different
manners
Sub-classes can override base
class methods
6/16/09
Python Mini-Course: Lesson 25
16
OOP example: animals.py
class Animal:
def __init__(self, name): # Constructor of the class
self.name = name
class Cat(Animal):
def talk(self):
return 'Meow!'
class Dog(Animal):
def talk(self):
return 'Woof! Woof!'
6/16/09
Python Mini-Course: Lesson 25
17
Composition
Objects can contain other objects
This is called a has-a relationship
Example:
 Taxi has-a driver
6/16/09
Python Mini-Course: Lesson 25
18

object oriented programming in python.ppt

  • 1.
    Python Mini-Course University ofOklahoma Department of Psychology Lesson 25 The object-oriented thought process 6/16/09 Python Mini-Course: Lesson 25 1
  • 2.
    Lesson objectives 1. Definethe key terms used in object- oriented programming (OOP) 2. Understand the difference between an object and a class 3. Describe the types of relationships that are possible between objects 6/16/09 Python Mini-Course: Lesson 25 2
  • 3.
    Procedural vs. OOP Reviewfrom Lesson 6 Procedural programming separates the program operations and the data Object-oriented programming packages the program operations and the data together in object 6/16/09 Python Mini-Course: Lesson 25 3
  • 4.
    What is anobject? The building blocks of an O-O program A program that uses O-O is basically a collection of objects Objects interact much like things in the real world do 6/16/09 Python Mini-Course: Lesson 25 4
  • 5.
    What is anobject? Objects have two components: Data (i.e., attributes) Behaviors (i.e., methods) 6/16/09 Python Mini-Course: Lesson 25 5
  • 6.
    Object attributes Store thedata for that object Example (taxi): Driver OnDuty NumPassengers Location 6/16/09 Python Mini-Course: Lesson 25 6
  • 7.
    Object methods Define thebehaviors for the object Example (taxi): PickUp DropOff GoOnDuty GoOffDuty 6/16/09 Python Mini-Course: Lesson 25 7 •GetDriver •SetDriver •GetNumPassengers
  • 8.
    Object interface To usea method, the user (programmer) must know: Name of the method Parameters to pass to the method What (if anything) the method returns 6/16/09 Python Mini-Course: Lesson 25 8
  • 9.
    Object implementation The userdoes NOT need to know how the method works internally 6/16/09 Python Mini-Course: Lesson 25 9
  • 10.
    What is aClass? A blueprint for an object Classes can be thought of as templates or cookie cutters Given a class description, we can instantiate objects of that class Classes are high-level data types 6/16/09 Python Mini-Course: Lesson 25 10
  • 11.
    OOP concepts Encapsulation Data andbehaviors are packaged together, but the object only reveals the interfaces needed to interact with it Internal data and behaviors can remain hidden 6/16/09 Python Mini-Course: Lesson 25 11
  • 12.
    OOP concepts Interfaces Fundamental meansof communication between objects Should completely describe to user (programmer) how to interact with the object Should control access to attributes 6/16/09 Python Mini-Course: Lesson 25 12
  • 13.
    Inheritance You can createnew classes by abstracting out common attributes and behaviors from a parent (or base) class 6/16/09 Python Mini-Course: Lesson 25 13
  • 14.
  • 15.
    Is-a relationship Because sub-classesinherit from their base class, they have an is- a relationship: Lion is a cat Cat is a mammal 6/16/09 Python Mini-Course: Lesson 25 15
  • 16.
    Polymorphism Allows similar objectsto to respond to the same message (method call) in different manners Sub-classes can override base class methods 6/16/09 Python Mini-Course: Lesson 25 16
  • 17.
    OOP example: animals.py classAnimal: def __init__(self, name): # Constructor of the class self.name = name class Cat(Animal): def talk(self): return 'Meow!' class Dog(Animal): def talk(self): return 'Woof! Woof!' 6/16/09 Python Mini-Course: Lesson 25 17
  • 18.
    Composition Objects can containother objects This is called a has-a relationship Example:  Taxi has-a driver 6/16/09 Python Mini-Course: Lesson 25 18