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

Gaddis Python 4e Chapter 10

Uploaded by

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

Gaddis Python 4e Chapter 10

Uploaded by

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

C H A P T E R 10

Classes and
Object-Oriented
Programming

Copyright © 2018 Pearson Education, Ltd.


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

Copyright © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
Object-Oriented Programming
(cont’d.)

Copyright © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
Object-Oriented Programming
(cont’d.)

Copyright © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.
Classes (cont’d.)

Copyright © 2018 Pearson Education, Ltd.


Classes (cont’d.)

Copyright © 2018 Pearson Education, Ltd.


Classes (cont’d.)

Copyright © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.


Class Definitions (cont’d.)

Copyright © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.


Copyright © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.
Copyright © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.


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 © 2018 Pearson Education, Ltd.
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 © 2018 Pearson Education, Ltd.

You might also like