0% found this document useful (0 votes)
2 views31 pages

Gaddis Python 3e Chapter 10

This chapter discusses the differences between procedural and object-oriented programming, focusing on the concept of classes and instances. It covers class definitions, the use of the self parameter, data attributes, methods, and the importance of encapsulation and data hiding. Additionally, it highlights techniques for designing classes and storing them in modules.
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)
2 views31 pages

Gaddis Python 3e Chapter 10

This chapter discusses the differences between procedural and object-oriented programming, focusing on the concept of classes and instances. It covers class definitions, the use of the self parameter, data attributes, methods, and the importance of encapsulation and data hiding. Additionally, it highlights techniques for designing classes and storing them in modules.
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/ 31

CHAPTER

10
Classes
and
Object-
Oriented
Programmi
ng

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Topics
Procedural and Object-Oriented
Programming
Classes
Working with Instances
Techniques for Designing Classes

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Procedural Programming
Procedural programming: writing
programs made of functions that
perform specific tasks
Procedures typically operate on data items
that are separate from the procedures
Data items commonly passed from one
procedure to another
Focus: to create procedures that operate on
the program’s data

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Object-Oriented Programming
Object-oriented programming: focused
on creating objects
Object: entity that contains data and
procedures
Data is known as data attributes and
procedures are known as methods
Methods perform operations on the data attributes
Encapsulation: combining data and
code into a single object
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Object-Oriented Programming
(cont’d.)

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Object-Oriented Programming
(cont’d.)
Data hiding: object’s data attributes are
hidden from code outside the object
Access restricted to the object’s methods
Protects from accidental corruption
Outside code does not need to know internal
structure of the object
Object reusability: the same object can
be used in different programs
Example: 3D image object can be used for
architecture and game programming
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Object-Oriented Programming
(cont’d.)

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


An Everyday Example of an
Object
Data attributes: define the state of an
object
Example: clock object would have second,
minute, and hour data attributes
Public methods: allow external code to
manipulate the object
Example: set_time, set_alarm_time
Private methods: used for object’s
inner workings
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Classes
Class: code that specifies the data
attributes and methods of a particular
type of object
Similar to a blueprint of a house or a cookie
cutter
Instance: an object created from a class
Similar to a specific house built according to
the blueprint or a specific cookie
There can be many instances of one class

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Classes (cont’d.)

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Classes (cont’d.)

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Classes (cont’d.)

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Class Definitions
Class definition: set of statements that
define a class’s methods and data
attributes
Format: begin with class Class_name:
Class names often start with uppercase letter
Method definition like any other python
function definition
self parameter: required in every method in the
class – references the specific object that the
method is working on

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Class Definitions (cont’d.)
Initializer method: automatically
executed when an instance of the class
is created
Initializes object’s data attributes and assigns
self parameter to the object that was just
created
Format: def __init__ (self):
Usually the first method in a class definition

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Class Definitions (cont’d.)

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Class Definitions (cont’d.)
To create a new instance of a class call the
initializer method
Format: My_instance = Class_Name()
To call any of the class methods using the
created instance, use dot notation
Format: My_instance.method()
Because the self parameter references the
specific instance of the object, the method will
affect this instance
Reference to self is passed automatically

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Hiding Attributes and Storing
Classes in Modules
An object’s data attributes should be
private
To make sure of this, place two underscores
(__) in front of attribute name
Example: __current_minute
Classes can be stored in modules
Filename for module must end in .py
Module can be imported to programs that use
the class

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


The BankAccount Class –
More About Classes
Class methods can have multiple
parameters in addition to self
For __init__, parameters needed to create
an instance of the class
Example: a BankAccount object is created with a
balance
When called, the initializer method receives a value to be
assigned to a __balance attribute
For other methods, parameters needed to
perform required task
Example: deposit method amount to be deposited

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


The __str__ method
Object’s state: the values of the
object’s attribute at a given moment
__str__ method: displays the object’s
state
Automatically called when the object is
passed as an argument to the print function
Automatically called when the object is
passed as an argument to the str function

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Working With Instances
Instance attribute: belongs to a specific
instance of a class
Created when a method uses the self
parameter to create an attribute
If many instances of a class are
created, each would have its own set of
attributes

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Accessor and Mutator
Methods
Typically, all of a class’s data attributes
are private and provide methods to
access and change them
Accessor methods: return a value from
a class’s attribute without changing it
Safe way for code outside the class to retrieve
the value of attributes
Mutator methods: store or change the
value of a data attribute
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Passing Objects as
Arguments
Methods and functions often need to
accept objects as arguments
When you pass an object as an
argument, you are actually passing a
reference to the object
The receiving method or function has access to
the actual object
Methods of the object can be called within the
receiving function or method, and data attributes
may be changed using mutator methods

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Techniques for Designing
Classes
UML diagram: standard diagrams for
graphically depicting object-oriented
systems
Stands for Unified Modeling Language
General layout: box divided into three
sections:
Top section: name of the class
Middle section: list of data attributes
Bottom section: list of class methods
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Finding the Classes in a
Problem
When developing object oriented
program, first goal is to identify classes
Typically involves identifying the real-world
objects that are in the problem
Technique for identifying classes:
1. Get written description of the problem domain
2. Identify all nouns in the description, each of
which is a potential class
3. Refine the list to include only classes that are
relevant to the problem

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Finding the Classes in a
Problem (cont’d.)
1. Get written description of the problem
domain
May be written by you or by an expert
Should include any or all of the following:
Physical objects simulated by the program
The role played by a person
The result of a business event
Recordkeeping items

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Finding the Classes in a
Problem (cont’d.)
2. Identify all nouns in the description,
each of which is a potential class
Should include noun phrases and pronouns
Some nouns may appear twice

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Finding the Classes in a
Problem (cont’d.)
3. Refine the list to include only classes
that are relevant to the problem
Remove nouns that mean the same thing
Remove nouns that represent items that the
program does not need to be concerned with
Remove nouns that represent objects, not
classes
Remove nouns that represent simple values
that can be assigned to a variable

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Identifying a Class’s
Responsibilities
A classes responsibilities are:
The things the class is responsible for knowing
Identifying these helps identify the class’s data
attributes
The actions the class is responsible for doing
Identifying these helps identify the class’s methods
To find out a class’s responsibilities
look at the problem domain
Deduce required information and actions

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Summary
This chapter covered:
Procedural vs. object-oriented programming
Classes and instances
Class definitions, including:
The self parameter
Data attributes and methods
__init__ and __str__ functions
Hiding attributes from code outside a class
Storing classes in modules
Designing classes

Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy