Lesson 25 The object-oriented thought process Python Mini-Course University of Oklahoma Department of Psychology Python Mini-Course: Lesson 25 6/16/09

Download Report

Transcript Lesson 25 The object-oriented thought process Python Mini-Course University of Oklahoma Department of Psychology Python Mini-Course: Lesson 25 6/16/09

Lesson 25 The object-oriented thought process

Python Mini-Course University of Oklahoma Department of Psychology 1 Python Mini-Course: Lesson 25 6/16/09

Lesson objectives

1.

2.

3.

Define the key terms used in object oriented programming (OOP) Understand the difference between an object and a class Describe the types of relationships that are possible between objects 2 Python Mini-Course: Lesson 25 6/16/09

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 3 Python Mini-Course: Lesson 25 6/16/09

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 4 Python Mini-Course: Lesson 25 6/16/09

What is an object?

 Objects have two components:  Data (i.e., attributes)  Behaviors (i.e., methods) 5 Python Mini-Course: Lesson 25 6/16/09

Object attributes

 Store the data for that object  Example (taxi):  Driver  OnDuty  NumPassengers  Location 6 Python Mini-Course: Lesson 25 6/16/09

Object methods

 Define the behaviors for the object  Example (taxi):  PickUp  DropOff  GoOnDuty  GoOffDuty • GetDriver • SetDriver • GetNumPassengers 7 Python Mini-Course: Lesson 25 6/16/09

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 8 Python Mini-Course: Lesson 25 6/16/09

Object implementation

 The user does NOT need to know how the method works internally 9 Python Mini-Course: Lesson 25 6/16/09

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 10 Python Mini-Course: Lesson 25 6/16/09

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 11 Python Mini-Course: Lesson 25 6/16/09

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 12 Python Mini-Course: Lesson 25 6/16/09

Inheritance

 You can create new classes by abstracting out common attributes and behaviors from a parent (or base) class 13 Python Mini-Course: Lesson 25 6/16/09

14 Python Mini-Course: Lesson 25 6/16/09

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 15 Python Mini-Course: Lesson 25 6/16/09

Polymorphism

 Allows similar objects to to respond to the same message (method call) in different manners  Sub-classes can override base class methods 16 Python Mini-Course: Lesson 25 6/16/09

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!' 17 Python Mini-Course: Lesson 25 6/16/09

Composition

 Objects can contain other objects  This is called a has-a relationship  Example:  Taxi has-a driver 18 Python Mini-Course: Lesson 25 6/16/09