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